티스토리 뷰

반응형

let과 const는 ES6 (2015)에서 추가됐다.

let과 const의 차이는 크지 않다.

 

const는 상수이며 선언 시 초기화가 반드시 필요하고 let은 변수이며 초기화를 반드시 할 필요는 없으며 이 외에는 같다고 보면 된다.

const a; // SyntaxError
const b = 1; // ok
b = 3; // TypeError

let c; // ok
let d = 1; // ok
d = 3 // ok

 

이제 var과의 차이를 보면

let, const는 재선언이 불가능하고 var는 가능하다.

let a = 1;
let a = 2; // SyntaxError

var b = 1;
var b = 2; // ok

 

let, const는 선언된 블록에 영향을 받는다. var는 선언된 함수에 영향을 받는다.

function a() {
    var b = 1;
    {
        var b = 2;
        console.log(b); // 2
    }
    console.log(b); // 2
    
    let c = 1;
    {
        let c = 2;
        console.log(c); // 2
    }
    console.log(c); // 1
}

 

let, const는 선언되기 전에 사용되면 에러가 발생하고 var는 에러가 발생하지 않는다. 선언 전에 호출하면 에러가 발생하는 이유는 시간상 사각지대(Temporal Dead Zone, TDZ)에 들어가기 때문이다.

console.log(a); // ReferenceError
console.log(b); // undefined
let a = 1;
var b = 1;

 

프로그램 최상위에서 선언할 경우 var는 전역 객체에 속성을 추가하지만 let, const는 추가하지 않는다.

var a = 1;
let b = 2;
console.log(this.a); // 1
console.log(this.b); // undefined
반응형

'web > javascript' 카테고리의 다른 글

[Javascript] 기본 타입  (0) 2017.03.24
[Javascript] 함수를 생성하는 방법들  (0) 2016.12.15
[Javascript] 객체 생성  (0) 2016.12.14
[Javascript] 호이스팅  (0) 2016.12.02
[Javascript] 비교 연산자  (0) 2016.07.27
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31