블록 스코프(block scope)
-> 중괄호를 기준으로 범위가 구분된다.
함수 스코프(function scope)
-> function 키워드가 등장하는 함수 선언식 및 함수 표현식은 함수 스코프를 만든다.
주의할점 -> 화살표 함수는 블록스코프로 취급된다.(함수 스코프 아님)
var
키워드는 블록스코프를 무시하고, 함수 스코프만 따른다.
-> 하지만 화살표함수
도 블록스코프
지만 화살표함수
의 블록스코프
는 무시하지 않는다.
그리고 var
키워드는 재선언이 버그처럼 가능하다.
let
키워드는 재선언을 방지
한다.
따라서 변수선언을 할때 var
보다는 let
을 사용하는걸 권장한다.
const
키워드는 상수(constant) 즉, 변하지않는 값을 정의할때 사용한다.
const 는 값의 재할당이 불가능하다.
값을 재할당할 경우 TypeError를 내므로, 의도치 않은 값의 변경을 막을 수 있다.