본문 바로가기
Front-End/Javascript

let, const 요약정리

by kimik 2018. 5. 21.

- let


1.let과 const는 블록레벨스코프이므로 블록안에서 선언된 변수를 전역에서 참조할수 없다.


let foo = 123;

{

  let foo = 456;

  let bar = 456;

}

console.log(foo); // 123

console.log(bar); // ReferenceError: bar is not defined


2. 중복선언이 불가하다.


let bar = 123;

let bar = 456;  // Uncaught SyntaxError: Identifier 'bar' has already been declared



3.var는 전역변수일때 window.변수명으로 참조가 가능하지만. let은 보이지않는 개념적인 블록 내에서만 존재한다.


let foo = 123; // 전역변수

console.log(window.foo); // undefined



- const


1.let과 달리 재할당이 금지되며 상수선언과 동시에 값이 할당되어야한다. let과 같은 블록레벨 스코프이다.


const FOO = 123;

FOO = 456; // TypeError: Assignment to constant variable.


2.재할당은 금지도지만 객체의 프로퍼티의 추가,삭제, 값 변경은 가능하다.


const user = { name: 'Lee' };

// 객체의 내용 은 변경할 수 있다.

user.name = 'Kim';

console.log(user); // { name: 'Kim' }


* 요약


1. var는 더이상 사용하지 않는다.


2. 재할당이 필요할땐 let, 객체와 변하지않는값은 const


출처 : https://poiemaweb.com/es6-block-scope




댓글