코어 자바스크립트

[TIL/코어 자바스크립트] 2024/05/12

✅ 데이터 타입 - 기본형 데이터와 참조형 데이터 - 불변값데이터 타입은, '기본형 데이터'와 '참조형 데이터'로 구분된다고 학습했다. 구분의 핵심 기준은 변경 가능성이다. 변경 가능성에 대한 명확한 이해가 없다면, 불변값과 상수를 구분하지 못하게 되는 불상사가 발생하

2024년 5월 12일1min read

✅ 데이터 타입 - 기본형 데이터와 참조형 데이터 - 불변값

데이터 타입은, '기본형 데이터'와 '참조형 데이터'로 구분된다고 학습했다. 구분의 핵심 기준은 ``변경 가능성``이다. 변경 가능성에 대한 명확한 이해가 없다면, 불변값과 상수를 구분하지 못하게 되는 불상사가 발생하게 된다.

#### 1. 변수 vs 상수 ✍️

변수와 상수는 '변경 가능성'에 의해 구분된다. 문제는 무엇에 대한 변경 가능성이냐는 것이다. 정답부터 얘기하자면, ``변수 영역에 대한 변경 가능성``이다.

var 또는 let과 같은 변수를 선언하면 값을(-> 정확히 말하면 값의 주소를) 자유롭게 변경할 수 있다. 반면 const로 대표되는 상수를 선언하면 값의 재할당이 불가능하다. 만일 상수로 선언한 값을 변경하려고 시도한다면(=변수처럼 대우하려고 하면), "TypeError: Assignment to constant variable" 에러를 조우하게 될 것이다.

#### 2. 가변값 vs 불변값 ✍️

가변값과 불변값은 ``데이터 영역에 대한 변경 가능성``으로 구분된다. 위에서 제시한 도해(圖解)에서 볼 수 있듯이, a의 값을 'abc'에서 'abcdef'로 변경한다고 가정해 보자.

1002번 메모리에서는 @5004가 아니라 @5005 주소를 값으로 변경하게 된다. 이때, @5004의 'abc'가 'abcdef'로 변경된 것이 아니라, 완전히 별개의 값인 @5005의 'abcdef'가 새롭게 생성된 것이다.

#### 3. 불변값 핵심 도출 ✍️