var
는 함수 영역(레벨)의 스코프를 가지지만 let
과 const
는 블록 영역의 스코프를 가짐. 블록{ }
에서만 유효하고, 블록을 벗어나면 사용할 수 없음.블록변수
: { }블록이나 ( )블록에서만 사용할 수 있는 변수var
예약어를 사용한 변수는 선언하기 전에 실행하더라도 아직 할당되지 않은 자료형인 undefined값을 가질 수 있음. 하지만 let
예약어를 사용한 변수는 선언하기 전에 사용할 경우 오류메세지를 나타냄.