728x90

🌲 데이터 불변성 Immutability

ㄴ 원시 데이터 Primitive Type : String, Number, Boolean, Null, Undefined

ㄴ 참조형 데이터 Reference Type : Object, Array, Function(콜백)

 

🚨 원시 데이터

원시데이터가 기존 메모리 주소에 있다면, 새로운 메모리 주소에 할당되지 않는다.

기존의 메모리 데이터는 불변하며 같게 생겼으면 같다고 이해하는 편이 쉬움

let a = 1
let b = 4
console.log(a, b, a === b) // 1, 4, false
b = a
console.log(a, b, a === b) // 1, 1, true
a = 7
console.log(a, b, a === b) // 7, 1, false
let c = 1
console.log(b, c, b === c) // 1, 1, true

 

🚨 참조형 데이터

같은 메모리 주소라면 값이 같아진다. 할당 연산자(=) 사용 시 복사가 아닌 메모리 주소만 참조하는 것 

데이터를 새로 할당할 때마다 메모리 주소를 새로 생성한다. 값이 같아보여도 같지 않음 

let a = { k: 1 }
let b = { k: 1 }
console.log(a, b, a === b) // { k: 1 }, { k: 1 }, false
a.k = 7
b = a
console.log(a, b, a === b) // { k: 7 }, { k: 7 }, true
a.k = 2
console.log(a, b, a === b) // { k: 2 }, { k: 2 }, true
let c = b
console.log(b, c, b === c) // { k: 2 }, { k: 2 }, true

 

728x90
+ Recent posts