원시 타입: number, string, boolean, null, undefined, symbol
객체 타입: 배열, 객체, 함수
이때 원시 타입의 값 즉, 원시값은 변경 불가능한 값이다. 따라서 한번 생성된 원시값은 읽기 전용 값이므로 변경할 수 없다. 한 번 할당한 값은 변경할 수 없으나 재할당은 가능하다.
let number=0;
number=3;
값을 변경한 게 아니라 재할당이 이뤄진 것!
마찬가지로, 문자열도 원시값이기 때문에 재할당이 아닌 변경은 불가능하다.
let str='hello';
str[0]='z'; // 원시값을 변경하려 했으나, 원시값은 불변하므로 이 코드는 무시된다.
console.log(str); // hello
str='bye'; // 새로운 값을 재할당
console.log(str); // bye