
number(Infinity, -Infinity, NaN도 숫자 타입), bigint, string, boolean, null, undefined, symbol// ex)
let a = 10;
a = 20;
위 코드를 메모리에서 바라보면
처음 a는 0x01에 10이라는 값이 저장
그리고 a = 20;이라고 작성하면0x01이 아닌 새로운 공간 0x02에 20이라는 값이 저장된다.
즉, 0X01에 10이 20으로 수정된 것이 아니기 때문에 불변성을 가진다고 함
(변경이 불가능하다는 뜻은 메모리 영역에서의 변경이 불가능하다는 뜻. 재할당은 가능)
// ex)
let x = 1;
let y = x; // y=1
y = 2; // x=1 y=2
array, function (원시 타입 이외의 모든 값)// ex)
let fruit ={
name : 'apple',
color : 'red',
}
let food = fruit; // food = fruit값을 가지고 있는 주소값
food.name = 'melon'; // fruit.name에 'apple'이 'melon'으로 변경됨
fruit는 메모리 영역에서 스택에 저장된다.
fruit의 인스턴스 값
{
name: 'apple',
color: 'red'
}
는 메모리 영역에서 힙에 저장된다.
