객체는 게임 캐릭터에 비유할 수 있다. 사용자들의 캐릭터는 동일하게 직업과 능력을 가지고 있지만 세부적인 내용은 다르다. 누군가는 JavaScript라는 ID와 마법사라는 직업을 가지고 있지만 다른 누군가는 Java라는 ID와 전사라는 직업을 가지고 있다. 마찬가지로 사용자가 회원가입을 할때 때 입력할 항목은 모두 같지만 입력하는 정보는 사용자마다 다르다. 이렇게 각기 다른 값을 가질 수 있지만 입력해야 하는 데이터의 종류가 동일한 경우 객체를 사용하면 손쉽게 데이터를 관리할 수 있다.
const cat = {
name: 'coco',
age: 3,
sound: 'meow'
};
cat.name // 'coco'
cat['age']; // 3
cat[key]
cat.country = 'america';
cat.age = 10;
console.log(cat.age); // 10
const cat = {
name: 'coco',
age: 3,
sound: 'meow',
color: {
eyes: 'black',
body: 'cheese'
}
};
console.log(cat.color) // {eyes: 'black', body: 'cheese'}
const cat = {
name: 'coco',
age: 3,
sound: 'meow',
color: {
eyes: 'black',
body: 'cheese'
},
cry: function(){
console.log(this.sound);
},
// key-value 쌍이 아닌 다른 방식
crying() {
console.log(this.sound);
}
};
console.log(cat.cry()); // meow
const cat = {
name: 'coco',
age: 3,
sound: 'meow',
color: {
eyes: 'black',
body: 'cheese'
}
};
l
for(let key in cat) {
let value = cat[key];
console.log(key); // name, age, sound, color
console.log(value); // coco, 3, meow, {eyes: 'black', body: 'cheese'}
}
const cat = {
name: 'coco',
age: 3,
sound: 'meow',
color: {
eyes: 'black',
body: 'cheese'
}
};
delete cat.color; // true
delete cat['sound']; // true
console.log(cat); // {name: 'coco', age: 3}
const cat = {
name: 'coco',
age: 3,
sound: 'meow',
color: {
eyes: 'black',
body: 'cheese'
}
};
Object.keys(cat); // ['name', 'age', 'sound', 'color']
Object.values(cat); // ['coco', 3, 'meow', {…}]
Object.entries(cat);
// ['name', 'coco'], ['age', 3], ['sound', 'meow'], ['color', {…}]