반응형
JavaScript 상수와 리터럴
상수와 리터럴은 대부분의 언어에서 많이 사용하지만 분명한 차이가 있는 개념입니다. JavaScript를 기준으로 각각의 차이점에 대해 정리해봤습니다.
1. 상수
상수는 일종의 변수이며 변수처럼 값을 저장하기 위한 메모리 공간을 필요로 합니다. 일반적인 변수는 재할당을 통하여 값을 변경할 수 있지만 상수로 사용하는 변수에는 값의 재할당을 할 수 없다는 차이점이 있습니다. 상수는 상태 유지, 가독성, 유지보수의 편의성 등을 위해 사용하는 것이 좋습니다.
JavaScript에서 상수는 const 키워드를 사용하여 선언합니다. const 키워드로 선언한 변수는 재할당을 할 수 없게 됩니다. 하지만 상수에 primitive type의 값이 아닌 객체를 할당한 경우엔 값의 변경이 가능합니다.
상수의 네이밍에는 일반적으로 다음과 같이 대문자와 언더스코어(_)를 사용합니다.
1
2
|
const CONST_VAL = 100;
CONST_VAL = 200; // TypeError: Assignment to constant variable.
|
cs |
2. 리터럴
리터럴(literal)은 사람이 이해할 수 있는 문자 또는 기호를 사용하여 값을 나타내는 표기법을 의미합니다. 즉, 값 또는 데이터 자체라고 볼 수 있습니다. JavaScript 엔진은 코드가 실행되는 runtime에 리터럴을 평가하여 값을 생성합니다.
아래 예제에서는 숫자 100이 리터럴에 해당합니다.
1
|
let val = 100;
|
cs |
3. 상수와 리터럴의 차이
앞서 알아본 내용을 바탕으로 상수와 리터럴의 차이를 정리하면 다음과 같습니다.
- 상수
변하지 않는 변수
메모리 공간의 주소값이며 변경되지 않음 (따라서 객체가 할당된 경우엔 값의 변경이 가능함) - 리터럴
변하지 않는 값
메모리 공간에 할당된 변수 안의 값이며 변경되지 않음
이상으로 JavaScript의 상수와 리터럴에 대해 알아봤습니다.
※ Reference
- 이웅모 지음, 『모던 자바스크립트 Deep Dive』, 위키북스(2020), p51 ~ p52. 5.2 리터럴, p216 ~ p217. 15.3.3 상수
- gomguard.tistory.com, 상수 (Constant) 와 리터럴 (Literal), https://gomguard.tistory.com/227
반응형