Mutable 객체는 생성된 이후에 상태가 변경될 수 있는 객체이고, Immutable 객체는 생성된 이후 상태가 변경되지 않는 객체를 말한다. JS에서 Object와 Array를 제외한 모든 타입은 Immutable한 타입이다.
1) mutable 변할 수 있다는 뜻 참조타입 해당 데이터 주소를 찾아서 값을 변경함
2) immutable 불변, 변할 수 없다는 뜻 원시타입 해당 데이터 주소와 별개의 새로운 주소에 값이 할당
변경이 불가능하다 라는 뜻은 재할당은 가능하지만, 메모리 영역에서의 변경이 불가능하다는 뜻이다.
타입 별 메소드중에서도 Immutable과 Mutable이 갈리는데, 아래는 그 예시이다.
immutable
Array.concat()
Array.filter()
Array.find
mutable
Array.splice()
Array.unshift()
Array.shift()
Array.push()
Array.pop()
일축하면, Immtable은 원본 데이터를 유지하려는 속성이고, Mutable은 원본데이터를 변화시키려는 속성이다.