[Deep JavaScript] ES6 - let, const
ES5까지는 var 키워드로 변수를 선언했다.
var 는 중복선언이 가능하며 Function-Level Scope를 가진다.
ES6에서는 Block-Level Scope를 갖는 변수 let 과 / 상수 const 를 지원한다.
1. Block-Level Scope
let obj_a = 'a';
{
let obj_a = 'aa';
let obj_b = 'bb';
}
console.log(obj_a);
// result : a
console.log(obj_b);
// result : not defined
---------------------------------------
2. 중복 선언 불가능
let obj = 'a';
let obj = 'b';
// error 발생
---------------------------------------
3. 호이스팅 불가능
console.log(obj);
// error 발생
let obj = 'a';
---------------------------------------
1. Block-Level Scope
{
const obj = 'a';
console.log(obj);
// result : a
}
console.log(obj);
// error 발생
---------------------------------------
2. 값 재할당 불가능
const obj = 'a';
obj = 'b';
// error 발생
---------------------------------------
3. 객체의 요소 변경가능
const obj = {a : 'a'};
obj.a = 'b';
console.log(obj.a);
// result : b
---------------------------------------