자바스크립트 데이터 타입
기본형(Primitive Types)
- Number, String, Boolean, null, undefined, Symbol
참조형(Reference Types)
- Object - (Array, Function, Date, RegExp, Map, WeakMap, Set, WeakSet)
변수와 식별자
- 변수 : 변경 가능한 데이터를 저장하는 공간
- 식별자 : 변수의 이름
메모리 할당 과정
1. 변수 선언
- 메모리의 빈 공간에 식별자 저장
- 자동으로 undefined 할당
2. 데이터 할당
- 기본형 : 별도의 공간에 데이터를 저장, 그 공간의 주소를 변수에 할당
- 참조형 :
- 객체 프로퍼티를 위한 별도 변수 영역 확보
- 확보된 주소를 변수에 연결
- 각 프로퍼티의 식별자 저장
- 각 데이터를 별도 공간에 저장하고 주소 매칭
기본형과 참조형의 차이
- "객체의 변수(프로퍼티) 영역"의 별도 존재 유무
참조형 데이터의 가변성
- 객체 내부 변수는 변경 가능 → 참조형 데이터는 가변값
참조형 데이터를 불변값으로 사용하는 방법
- 깊은 복사(하드코딩, 깊은복사 함수, JSON.stringify/parse)
- 불변성 라이브러리 사용(immutable.js, baobab.js)
- 깊은 복사를 위한 내장함수 structuredClone()
'없음' 을 나타내는 값
- null : 사용자가 명시적으로 할당 (권장)
- undefined : JS 엔진이 자동 반환
null 사용 시 주의사항
- 'typeof null' 은 object 반환
- null 판별에는 일치 연산자 (`===`) 사용 권장
'JavaScript' 카테고리의 다른 글
콜백함수 (0) | 2024.12.14 |
---|---|
this (0) | 2024.12.13 |
실행컨텍스트(Execution Context) (0) | 2024.12.03 |
얕은복사와 깊은복사, structuredClone() (0) | 2024.12.02 |
스택(Stack)과 힙(Heap) (0) | 2024.12.02 |