불변성이란 상태를 변경할 수 없는 것을 의미한다.
자바스크립트 타입의 불변성
원시 타입은 불변성을 가지고 있고 참조 타입은 가지고 있지 않다.
원시 타입 : Boolean, String, Number, null, undefined, Symbol
참조 타입 : Object, Array
원시 타입 → 고정된 크기로 Call stack 메모리에 저장, 실제 제이터 변수에 할당
참조 타입 → 데이터 크기가 정해지지 않고 Call stack 메모리에 저장, 데이터의 값이 heap에 저장되며 변수에 heap 메모리의 주소값이 할당
불변성을 지켜야 하는 이유
불변성을 지키는 방법