javaScript(데이터 불변성-Immutability)

Dev_Go·2022년 6월 27일
0

모던 자바스크립트

목록 보기
17/37
post-thumbnail

데이터 불변성(Immutability)


mutate는 변화, mutable는 변화 가능한, mutability는 변화 가능성을 의미하는 단어이다.

  • immutability 불변함을 의미하는 단어이다.
  • 프로그래밍에서 immutability는 데이터의 원본이 훼손되는 것을 막는 것을 의미한다.

원시 데이터와 참조형 데이터

원시 데이터(String, Number, Boolean, undefinde, null)는 불변값이고,
참조형 데이터(Object, Array, Function)는 가변값이지만 설정에 따라 변경불가 할 수 있고 불변값으로 활용할 수 있다.

원시 데이터

  • 원시형 타입은 선언되는 순간 값이 메모리에 저장되고, 변수가 그 값을 가리키게 된다.
  • 같은 값을 가리키는 두 변수를 동등 비교연산자(===)로 비교했을 때 true값이 반환된다.
    • 같은 값을 가리킨다는 것을 의미한다.
let a = 1
let b = 4
console.log(a, b, a === b)
b = a
console.log(a, b, a === b)
a = 7
console.log(a, b, a === b)
let c = 1
console.log(b, c, b === c)

결과

참조형 데이터

  • 객체형 타입은 선언되는 순간 값 자체가 아닌 새로운 메모리 주소를 생성해 저장하기 때문에 객체 별로 새로운 주소가 생성된다.
  • 동등 비교를 했을 경우 그 내용이 같더라도 false 값이 반환된다.
let a = { k: 1 }
let b = { k: 1 }
console.log(a, b, a === b)
a.k = 7
b = a
console.log(a, b, a === b)
a.k = 2
console.log(a, b, a === b)
let c = b
console.log(a, b, c, a === c)
a.k = 9
console.log(a, b, c, a === c)

결과

profile
프론트엔드 4년차

0개의 댓글