TIL

<모던 자바스크립트 Deep Dive> 15장 let, const 키워드와 블록 레벨 스코프 요약 (2)

낭만인 2022. 2. 22. 20:08

3) const 키워드

- 상수 선언을 위해 사용

- let 키워드와 그 특징이 대부분 동일

- let 키워드와 구별되는 부분

 

1. 선언과 초기화

- const 키워드로 선언한 변수는 반드시 선언과 동시에 초기화 필요

// 변수 선언과 동시에 초기화
const foo = 1;

// 초기화는 이루어지지 않음 -> 문법 에러
const foo2; // SyntaxError: Missing initializer in const declaration

- let 키워드와 마찬가지로 블록 레벨 스코프를 가지며, 변수 호이스팅이 발생하지 않는 것처럼 동작

 

 

2. 재할당 금지

- var, let 키워드와 달리 const 키워드로 선언한 변수는 재할당 금지됨

const foo = 1;
foo = 2; // TypeError: Assignment to constant variable.

 

 

3. 상수

- 변수에 원시 값을 할당하는 경우 재할당을 통해 원시 값 변경이 가능하지만, const 키워드로 선언된 변수는 재할당을 금지하기 때문에 원시 값 할당 시 변경 불가

- 따라서 상수 표현 시 사용하기도 함

- 상수는 상태 유지, 가독성, 그리고 유지보수의 편의를 위해 적극적 사용 권장

- 상수 이름은 대문자로 선언하는 것이 규칙

// 세율 TAX_RATE는 프로그램 전체에서 고정된 값을 가지므로 상수로 정의하면 고정값으로 편리하게 사용 가능
const TAX_RATE = 0.1;

let preTaxPrice = 100;

let afterTaxPrice = preTaxPrice + (preTaxPrice * TAX_RATE);

console.log(afterTaxPrice); // 110

 

 

4. const 키워드와 객체

- const 키워드로 선언된 변수에 객체를 할당한 경우, 객체는 직접 변경이 가능하므로 값 변경이 가능

- 단, 객체가 변경되더라도 변수에 할당된 참조 값은 변경되지 않음

const person = {
	name = 'Lee'
};

person.name = 'Kim';

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

 

 

 

4) var, let, const 키워드

- ES6를 사용한다면 var 키워드 대신, var 키워드의 단점을 보완한 let, const 키워드 사용 권장

- 재할당이 필요할 때 let 키워드를 사용할 것(스코프는 최대한 좁게)

- 변경이 발생하지 않으며 읽기 전용으로 사용할 경우에는 const 키워드 사용 권장(var, let 키워드보다 안전)

- 재할당이 필요하게 되면 나중에 가서 수정해도 결코 늦지 않으므로 우선은 const 키워드 사용을 권장함

 

 

 

 

 

참고 : 도서 <모던 자바스크립트 Deep Dive>