기본형 타입 | 참조형 타입 |
---|---|
숫자(Number) 문자열(String) 참/거짓(Boolean) null undefined Symbol | 객체(Object) 배열(Array) 함수(Function) 날짜(Date) 정규표현식(RegExp) Map Weak Map Set WeakSet |
불변성의 필요 이유 : 메모리에 효율적으로 데이터를 저장하기 위해
[1]// 변수 초기화
let name = '홍길동'
// 데이터 재할당
let name = '홍길동'
name = '고길동'
// 변수에 변수를 대입
let name = '홍길동'
let name2 = name
// 변수에 변수를 대입
let name = '홍길동'
let name2 = name
name2 = '고길동'
// 변수 초기화
let person = {
name: '홍길동',
age: 123
}
// 데이터 재할당
let person = {
name: '홍길동',
age: 123
}
person.name = '고길동'
// 참조형 데이터가 참조인 이유
let person = {
name: '홍길동',
age: 123
}
let person2 = person
person2.name = '고길동'
console.log(person.name); // '고길동'
- 메모리 저장 : 데이터를 메모리에 저장하기 위해서는 선행으로 공간을 확보해야하는데 불변성이 없다면 처음 저장한 데이터보다 큰 크기의 데이터를 제할당해야할 때 뒤에 저장된 메모리들의 공간이 뒤로 밀리는 현상이 발생하며 각각의 주소값을 다시 연결해야됨