var는 함수 스코프를 가진다. 즉, 변수의 범위가 한 함수이다.

let은 블록 스코프를 가진다. 즉, 한 블록 {} 안에서만 유효하고 그 밖에서는 사용할 수 없다.

 

 

var는 여러번 선언해도 문제가 없다. (이상하다...)

ex)

var a = 10;
var a = 100;

let은 이렇게 하면 에러가 발생한다.

 

 

var는 변수의 선언 이전에 사용해도 문제 없이 사용할 수 있다. (역시나 이상하다...)

let은 불가능하다.

var는 선언과 초기화가 동시에 일어나지만 let은 선언과 초기화가 별도의 단계로 일어난다.

 

 

var, let, const 모두 호이스팅은 발생한다. 함수, 클래스도 모두 호이스팅이 발생한다.

그러나 let, const는 선언과 초기화가 별도로 진행되어 let, const가 있는 곳 윗줄에서 사용하지 못하게 막혀있다.

 

지금까지 let, const는 호이스팅이 일어나지 않는 줄 알았었다...

'Computer Science > Javascript&Typescript' 카테고리의 다른 글

고차 함수 (Higher Order Function)  (0) 2021.06.24

+ Recent posts