객체의 키에는 스페이스, 한글, 특수문자 등이 들어갈 수 있다.
변수 선언에서 할 수 없었던 표현이 가능
let difficult = {
'my name': 'boong',
color: 'silver',
키: '한글인 키는 따옴표가 없어도 되는군!!',
'!키': '느낌표 있는 키는 따옴표가 필요하군',
$special: '$는 없어도 되는군'
};
const 로 선언된 변수는 값을 절대 수정할 수 없었습니다.
const mutableObj = {
name: '객체'
};
mutableObj.name = '수정';
mutableObj.type = 'Object 타입';
const 로 선언된 변수에 객체를 다시 할당하면 오류가 생기지만
그 객체에 프로퍼티를 추가하거나 수정하는 것은 가능
객체에 저장된 값이 함수일 때, 메서드라고 부름
console.log();
console.log() 도 객체. 자바스크립트 어디에나 접근이 가능 했으니 global 객체console 다음에 dot(.)으로 프로퍼티를 접근했고, log 라는 키의 값은 함수. log는 console 이라는 객체의 메서드. 객체에 메서드를 정의하려면 아래와 같이 할 수 있습니다.
let methodObj = {
do: function() {
console.log('메서드 정의는 이렇게');
}
}
let methodObj = {
do: function() {
console.log('메서드 정의는 이렇게');
}
}
호출방법 methodObj.do();
const hiObj = {
name: '안녕'
};
const helloObj = {
name: '안녕'
};
console.log(hiObj === helloObj); // false

hiObj 가 갖고 있는 진짜 값은 메모리 주소인 reference입니다.
하지만 hiObj 를 불러올 때 메모리 주소를 반환하는 것이 아니라,
해당 메모리에 저장된 데이터를 반환해 준다!
console.log(hiObj.name === helloObj.name); / true