- 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
'Front-End > Javascript' 카테고리의 다른 글
[React]내 멋대로 만드는 Todolist-2(feat.Parcel) (0) | 2019.04.25 |
---|---|
[React]내 멋대로 만드는 Todolist-1(feat.Parcel) (0) | 2019.04.18 |
[mac] npm 설치시 권한 오류 해결방법 (0) | 2018.08.16 |
화살표 함수 (arrow function) (0) | 2018.05.25 |
템플릿 리터럴(Template literal) 요약정리 (0) | 2018.05.21 |
댓글