중괄호로 둘러싼 범위 (block scope)
함수로 둘러싼 범위(function scope)
화살표 함수로 둘러싼 범위(block scope)
블록 범위를 벗어나는 경우
for(let i = 0; i < 3; i++){ console.log(i); // 3번 반복 } console.log(i); // Reference Error
let 대신 var로 선언한 경우
for(var i = 0; i < 3; i++){ console.log(i); // 3번 반복 } console.log(i); // 3
let | const | var | |
---|---|---|---|
유효범위 | 블록 스코프 및 함수 스코프 | 블록 스코프 및 함수 스코프 | 함수 스코프 |
재할당 | 가능 | 불가능 | 가능 |
재선언 | 불가능 | 불가능 | 가능 |
var로 선언된 전역 변수 및 전역 함수는 window 객체에 속하게 된다.
var name = "zumwhol"; console.log(window.name); // zumwhol;
function name(){ console.log("hello"); } window.name() // hello
전역 변수는 최소화하자
선언 키워드없이 변수에 할당하면 var로 할당한 결과가 된다.
(strict Mode 적용 : 문법적으로 실수할 수 있는 부분들을 에러로 판단해준다)