참고: https://poiemaweb.com/js-closure *클로저는 실행 컨텍스트의 개념을 선행해야한다. 클로저란? 💡 “A closure is the combination of a function and the lexical environment within which that function was declared.” 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. function outerFunc() { var x = 10; var innerFunc = function () { console.log(x); }; innerFunc(); } outerFunc(); // 10 스코프는 함수를 호출할 때가 아니라 함수를 어디에 선언하였는지에..
참고: https://youtu.be/4_WLS9Lj6n4 ✔️ 변수 var는 선언하기 전에 사용할 수 있다. console.log(name); // undefined var name = "Mike"; var로 선언한 변수는 호이스팅(hoisting)되어 사용할 수 있다. 선언은 호이스팅되지만, 할당은 호이스팅되지 않기 때문에 console에서는 undefined를 반환한다. ❗호이스팅(hoisting)? : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것처럼 행 let, const도 호이스팅되지만, TDZ(Temporal Dead Zone)에 의해 let name = "Mike" 라고 선언하게 되면 ReferenceError를 발생시킨다. TDZ 영역에 있는 변수들은 사용할 수 없다. 이에 의해서..
참고: https://youtu.be/KF6t61yuPCY ✔️ switch문 if(평가 == A){ // A일때 코드 } else if(평가 == B){ // B일때 코드 } // 위 코드를 switch 문으로? switch(평가){ case A: // A일때 코드 case B: // B일때 코드 } if 문과 같은 코드를 switch문에 맞게 변경할 수 있다. 이는 케이스가 주어질 때 사용하는 조건문이 된다. if 문과 다른 것은 else를 사용하여 모두 해당되지 않을 때의 실행을 작성할 수 있었는데, switch 문에서는 default: 키워드를 사용하여 모든 케이스에 해당되지 않을 때의 실행 코드를 작성해줄 수 있다. 또한, 코드가 같을 때는 case '': case '': 처럼 같이 case를 ..
참고: https://youtu.be/KF6t61yuPCY ✔️ 변수 [ let ] - 변할 수 있는 값을 선언 [ const ] - 절대로 바뀌지 않는 상수 (수정 X) - 보통 대문자로 선언 const PI = 3.14; const SPEED_LIMIT = 50; const BIRTH_DAY = '2020-01-01'; ❗Tip - 모든 변수를 const로 선언 - 변경될 여지가 있는 변수를 let으로 변경 1) 변수는 문자와 숫자, $와 _만 사용 2) 첫 글자는 숫자가 될 수 없음 3) 예약어는 사용 불가 ex) class, let (참고: https://www.w3schools.com/js/js_reserved.asp) 4) 가급적 상수는 대문자로 사용 5) 변수명은 읽기 쉽고 이해할 수 있게 ..
기본적인 웹 프로그래밍 언어 중 JS를 공부하려 한다. 요즘 JS는 안 쓰이는 곳이 없을 만큼 중요한 언어라고 생각한다. Front-end에서는 React, Vue 등에서 활발하게 사용하고 있고, Back-end에서는 Node.js 등 사용된다. 첫 웹 프로젝트를 했을 때 Back-end를 담당했었는데, JS에 대한 지식 1도 없이 Node.js로 구축을 했다. 그 당시에 정말 많은 삽질, const와 var 중 어떤 것을 써야 하며 혼합형으로 가치 없는 코드를 작성하기 일쑤였다. 대학교 프로젝트니까 급하게 하다 보니 정말 아무 생각이 없었던 것 같다. 최근에 나오는 프레임워크에 기본이 되는 JS를 공부하고, 최종적으로는 RN(리액트 네이티브)를 공부해보려 한다. 그럼 START!! (다음 내용은 '이웅..