let
은 블록 유효 범위를 갖는 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화 할수 있다.
let a = 1;
if( a == 1 ){
let a = 2;
console.log(a); // output: 2
}
console.log(a); // output: 1
let
은 변수가 선언 된 블록안에서만 유효합니다.
var
블록 범위를 무시하고 선언 되므로 let
과 var
의 차이를 알수 있습니다.
const
는 블록 범위의 상수를 선언합니다.
상수의 값을 재할당 할수 없고 재선언 할수도 없습니다.
const foo = 123;
foo = 345; // error: Uncaught TypeError: Assignment to constant variable.
{}
,[]
오브젝트에서 값을 변경 할수 있고, 배열에서 값을 추가 할수 있습니다.
// for문에서 var 의 유효범위
var a = 1;
for(var a=0; a<5; a++) {
console.log(a); // 0 1 2 3 4
}
console.log(a); // 5
위에 코드에서 for문의 {}
안에 유효범위가 적용 되지 않기 때문에 마지막 콘솔의 값 5가 출력이 됩니다.
이런 경우에는 작업중에 헷갈릴수 있기 때문에 let
으로 해결 할수 있습니다.
let a = 1;
for(let a=0; a<5; a++) {
console.log(a); // 0 1 2 3 4
}
console.log(a); // 1
let
을 사용하여 for문 안에 유효범위가 적용되었습니다.