변수는 데이터 그 자체가 아니다.
변수는 메모리 상의 특정 위치를 가리키는 이름표와 같다.
이 이름표는 데이터가 저장된 메모리 주소를 담고 있으며, 이 주소를 통해 데이터에 접근할 수 있다.
변수와 데이터의 관계:
- 원시 타입 (Primitive Types):
- string, number, boolean, null, undefined, symbol, bigint과 같은 원시 타입의 경우, 변수는 값 자체를 저장하는 것처럼 보일 수 있습니다.
- 하지만 실제로는 변수가 값의 메모리 주소를 저장하고, 이 주소를 통해 값에 접근합니다.
- 객체 타입 (Object Types):
- object, array, function과 같은 객체 타입의 경우, 변수는 객체 자체를 저장하는 것이 아니라 객체가 저장된 메모리 주소를 저장합니다.
- 변수는 객체에 대한 참조(reference)를 저장하고, 이 참조를 통해 객체에 접근합니다.
let Number01 = 10;
let Number02 = 10;
let Number01 = 10;
let Number02 = 20;
따라서 변수 2개에 각각 10과 20을 할당하는 경우와 10만 할당하는 경우는 최적화에 따라 메모리 차지 방식이 다를 수 있다.
값이 동일한 경우, 자바스크립트 엔진의 최적화에 의해 10은 한번만 메모리에 저장되고, 참조를 통해 해당 값을 반환하는 방식으로 사용 될 수 있다. 하지만 10, 20처럼 다른 값을 참조하려면 두 값을 별도의 메모리 공간에 저장 해야한다. 따라서 메모리 차지 용량은 후자가 전자보다 클 가능성이 높다.
'자바 스크립트(java script) > 개념 조각' 카테고리의 다른 글
undefined, null (0) | 2025.03.24 |
---|---|
구조 분해 할당 (0) | 2025.03.24 |
data-* 속성 및 dataset 속성에 대한 정리 (0) | 2025.03.22 |
메모리 구조 (0) | 2025.03.22 |
함수와 메서드(method)란? (0) | 2025.03.21 |