메모리영역에서 변경 가능 여부를 의미한다.
원시타입 : immutable (변경불가능) 값
변할 수 있다는 뜻
참조타입
해당 데이터 주소를 찾아서 값을 변경함
참조타입 : mutable (변경가능) 값
불변, 변할 수 없다는 뜻
원시타입
해당 데이터 주소와 별개의 새로운 주소에 값이 할당
//immutable
//불변
var str = 'Hello';
str = 'world';
위의 코드에서 str에서의 hello 에서 str이 world로 가르키는 주소가 바뀌었다.
잘 보면 주소가 바뀐것이다 메모리 상에는 hello 라는 값이 남아있지만 str이 바라보는 주소가 변경되어서 str은 world로 출력이 된다.
//Mutable
// 가변
let jaen = {location: 'earth'};
let jaek = jaen;
// 서로 바라보는 객체의 주소값이 같다.
jaek.location = 'moon';
/*
[result]
jaen: {location: 'moon'}
jaek: {location: 'moon'}
값이 저장된 메모리 주소를 함께 바라보기 때문에 메모리 영역 값이 바뀜