조건 1. 하나의 포스트잇에는 하나의 원시 값만 적을 수 있다.
조건 2. 한번 사용한 포스트잇은 재사용하지 않는다.
let a = 10;
const b = a;
a = 30;
console.log(b); // 10
⇒ 원시 값은 값을 바꾸면 달라지고, 모양이 같으면 같고 다르면 다른 것이다.
조건 1. 하나의 포스트잇에는 하나의 정보만 적을 수 있고, 재활용하지 않는다.
조건 2. 참조 값 형태의 자료들은 양이 방대하여 포스트잇에 적을 수 없다.
조건 3. 참조 값 형태의 자료들은 별도 저장소에 보관해야 하며, 하나의 저장소에는 하나의 자료만 보관할 수 있다.
const list1 = [ 1, 2, 3 ];
const list2 = [ 1, 2, 3 ];
const result = list1 === list2;
console.log(result); // false
⇒ 배열을 만든다는 것은 메모리에 배열 정보를 전달하고 위치 값을 저장하는 것이기 때문에 입력된 내용과 상관없이 엄연히 다른 값이다.
const list3 = [ 1, 2, 3 ];
const list4 = list3;
const isSame = list3 === list4;
console.log(isSame); // true
list3는 배열을 만들지만, list4는 만들어진 배열을 그대로 담기 때문에 똑같은 위치 정보를 가지므로 true이다.
const person1 = {
age: 10
};
const person2 = person1;
person1.age = 20;
console.log(person2); // 20
person2에 person1의 값을 담는 것이 아니라 위치 정보를 담는 것이기 때문에 수정된 내용이 그대로 반영된다.
const person = {
age: 30
};
const something = person.age;
person.age = 50;
console.log(something); // 30
something에 담는 person.age는 위치 정보가 아닌 원시 값이기 때문에 수정된 내용이 반영되지 않는다.
객체와 기본 데이터 타입의 본질적인 차이를 알게 되었다😃 모양을 만들고 기능을 구현하는 것만큼이나 코드의 기본적인 메커니즘을 이해하는 것이 무척이나 중요하다는 것을 느꼈다🙃