불변성
은 생성된 데이터가 메모리에서 변경되지 않고,
가변성
은 생성된 데이터가 메모리에서 변경될 수 있음을 의미합니다.
자바스크립트
원시형
(문자,숫자,불린,Symbol,Bigint)은 불변성을,참조형
(객체,배열,함수)은 가변성을 가지고 있습니다.
let a = { x: 1}
let b = a
b.x = 2
console.log(b) // { x: 2}
console.log(a) // { x: 2}
a.x =7
console.log(b) // { x: 7}
console.log(a) // { x: 7}
b.x = 1
console.log(b) // { x: 1}
console.log(a) // { x: 1}
let a = [1,2,3]
let b = a
b[0] = 4
console.log(b) // [ 4,2,3]
console.log(a) // [ 4,2,3]