const person1 = {
age: 10
};
const person2 = person1;
person1.age = 20;
console.log(person2); // ?
답 {age: 20}
let one = { name: "one" };
one이라는 객체 주소가 메모리에 생성되고 one은 { name: "one" }주소를 가리킨다.
const two = { name: "two" };
const something = one;
something은 one이 가르키고 있는 주소 { name: "one" }주소를 가리킨다.
one = { name: "ONE" };
{ name: "ONE" }주소가 메모리에 생성되고 one은 { name: "ONE" }메모리 값을 가리킨다
console.log(something); // ?
답 {name: 'one'}
Immutable type
불변성(Immutability)란 말그대로 변하지 않는 것을 의미한다. 불변 데이터는 한번 생성되고나면 그 뒤에는 변할수 없다.
자바스크립트에는 원시 타입(primitive type)으로는Boolean,
String
Number
Null
undefined
Symbol
이 있으며 이 원시 타입은 불변한다. 이 값은 메모리영역 안에서 변경이 불가능하며 변수에 할당할 때 완전히 새로운 값이 만들어져 재 할당된다.
const person1 = {age: 10};
const person2 = person1;
person1.age = 20;
console.log(person2); // ?
답:{age: 20}
let person1 = {age: 10};
const person2 = person1;
person1 = {age: 40};
console.log(person2); // ?
답:{age: 10}