원시타입은 메모리셀 안에 값이 바로 들어가있고 변수이름이 메모리주소 자체를 가리키고있다
객체는 메모리셀 안에 실제로 객체가 들어있는 메모리 주소를 보관하고 있다
(값 자체가 아닌 참조값을 가지고 있다.)
copy by value
값이 복사되는 원시타입 Ex)
let a = 1;
let b = a; //b에 a의 값인 1이 복사되어서 할당된다
console.log(b) => 1
b = 2 //b에 2를 재할당하면 b의 값은 2가 되지만 a의 값은 여전히 1을 가지고 있다
참조(=레퍼런스)값이 복사되는 객체타입 Ex)
let apple = { name : 'apple', }
let orange = apple; //orange라는 변수에 apple이 가리키고 있는 메모리주소 값을 복사한다
orange.name = 'orange'; //orange라는 객체의 이름을 orange로 변경하면
apple.name의 값도 orange로 변경된다.