728x90
반응형
ES6 표준에서 처음으로 추가된 특성 중 let 과 const 에 대해 알아보도록 하겠다.
ES6 전에는 var 키워드로 변수와 상수를 선언해 사용했지만,
ES6 에서는 let 과 const 를 이용해 변수와 상수를 선언할 수 있게 되었다.
변수는 let 선언자, 상수는 const 선언자를 이용하면 된다.
var 선언자를 이용해 선언을 하면, 아래 예시와 같이 재선언을 해도 문제가 발생하지 않았다.
1. let
var 를 이용해 변수 재선언을 해보겠다.
var test = 1;
console.log(test);
var test = 2;
console.log(test);
이번에는 let 선언자를 이용해 선언해보겠다.
let test = 1;
console.log(test);
let test = 2;
console.log(test);
이렇게 let 은 변수 재선언이 되지 않는다는 것을 알 수 있다.
2. const
const 는 호이스팅이 불가능하다.
아래 코드를 실행하면 undefined 가 나온다.
console.log(test)
var test=1;
이는 자바스크립트가 변수 선언을 console.log() 위에 있는 것 처럼 내부적으로 실행하기 때문이다.
마치 아래 코드와 같이 동작한다.
var test;
console.log(test);
test=1;
그런데 const 선언자를 사용해서 할당하면 아래와 같이 오류가 발생하며
const 선언에 초기화가 이루어지지 않았다고 알려준다.
console.log(test);
const test=1;
3. let 과 const 공통점
둘 다 재선언이 되지 않는다.
4. let 과 const 차이점
const 는 재할당이 불가능하다.
const test =1;
test=2;
5. const 특이점
만약 아래 코드와 같이 const 변수가 참조형이라면,
개체의 프로퍼티는 변경이 가능하다.
const food = {
id :1,
name : "cookie"
}
food.id=100;
food.name="choco";
console.log(food.id, food.name);
728x90
반응형
'Archive > Develop' 카테고리의 다른 글
[ JavaScript ] ES6 : TDZ (Temporal Dead Zone) | let 참조에러 (0) | 2021.02.15 |
---|---|
[ JavaScript ] ES6 : Block scope | var, let 변수 유효범위 (0) | 2021.02.15 |
[ React ] ProtoTypes 설치하기 | ProtoTypes install (0) | 2021.02.13 |
[ React ] 동적 컴포넌트 생성 | Each child in a list should have a unique "key" prop 에러 해결 (2) | 2021.02.12 |
[ JavaScript ] var & var hoisting(호이스팅) (0) | 2021.02.12 |