method
를 가지지 않는다.string
, number
, bigint
, boolean
, undefined
, symbol
, null
을 말한다.heap
이라는 특별한 데이터 보관함에 데이터를 담는다.let user = { name: '성훈' };
let admin = user;
admin.name = '전성훈';
console.log(user.name); // "전성훈"
user
의 객체를 admin
에 똑같이 복사하여 admin
의 name
프로퍼티 값만 변경될 것으로 예상하지만 user.name
값도 똑같이 변경된 것으로 확인된다.
user
와 admin
에는 { name: "성훈" }
이라는 객체의 같은 주소를 참조하고 있기 때문에 admin
의 name
값을 변경하면 같은 데이터의 주소를 참조하고 있는 user.name
또한 변경된다.
<이미지 출처>
https://ko.javascript.info/object-copy
// 원시 자료형은 값 자체를 담기 때문에 값끼리 비교하여 true를 반환함.
console.log('성훈'==='성훈'); // true
console.log(3.14 === 3.14); // true
// 참조 자료형은 값의 주소를 비교하기 때문에 주소가 달라 false를 반환함.
console.log([a, b, c] === [a, b, c]); // false
console.log({ name: '성훈' } === { name: '성훈' }); // false