직장인 취준생으로써 공부를 하다보면 프로그래밍과 전혀 다른 내 일을 하다가 HTML, CSS를 공부하다보면 Javascript를 잊어먹거나 혹은 반대로 되는 경우도 종종 있다.
특히 Javascript의 경우에도 React 등을 다루다보면 map, reduce, filter 등 몇몇을 제외하고는 잘 안 쓰다보니 잊어버릴 때가 있다.
하지만 "기본은 알고 있어야지!" 하는 생각에 나를 위해서 Javascript를 조금 정리해보려고 한다.
: var, let, const → 이들을 '변수'라고 한다
: hoisting → scope 내부 어디서든 변 수 선언은 최상위에 선언 된 것처럼 행동
[예시]
console.log(name); //undefined
var name = "dooly";
이렇게 보면 undefined가 나올 뿐 error가 나오지는 않는다!
왜? 왜 error가 안 생길까?
그 이유는 바로...
var name;
console.log(name); //undefined
name = "dooly";
실제로 보이지는 않지만 이런 식으로 name이라는 변수가 hoisting 되기 때문이다.
변수는 hoisting 되지만, 할당 된 값('dooly')는 hoisting 되지 않는다
console.log('nickName');
let nickName = "Dooly";
let은 왜 Uncaught ReferenceError가 나올까?
그 이유는 바로!!!! TDZ 때문!!
Temproal Dead Zone
console.log(nickName);
const nickName = "Dooly"
console.log(nickName);
첫 번째 줄이 TDZ이며, 두 번째 줄은 함수 선언 및 할당을 했고, 세 번째 줄은 두 번째 줄의 할당한 것을 사용 할 수 있다