var와 const, let의 차이 Summary
이미지출처
Non-block scope
호이스팅, 재할당가능
호이스팅 hoisting?
선언한 변수가 가장 위로 끌어 올려지는 현상 (like 함수...)
x
var는 호이스팅이 되기 때문에 for문 안에서 i를 선언했음에도 불구하고 for문 바깥에서 i를 호출하면 값이 출력된다.
var는 ES5까지 유일한 변수 선언 방법이었으나, 중복 선언이슈, 호이스팅으로 인해 오류가 빈번하게 발생했다. 이를 보완하고자 나온 것이 const/let이다.
Block scope
var -> let
let은 블럭스코프이다. {} 안에서만 존재하기 때문에 for문을 벗어나면 i는 사라진다. 즉, i is not defined