▶ 객체 (Object) : 주로 데이터 관리를 위해 사용. ( { "Key" : "value"} )
1) 객체의 초기화
// 'object literal' syntax
const obj = {};
// 'object constructor' syntax
const obj = new Object();
2) 속성제어 (CRUD)
const obj = { name: 'Mike', age: 20 };
// 속성 조회
console.log(obj.name); // Dot 연산자 사용
console.log(obj['name']); // 대괄호 사용
// 속성 추가 또는 변경
obj.hasJob = false;
obj['hasJob'] = true;
console.log(obj.hasJob);
// 속성 삭제
delete obj.hasJob;
console.log(obj.hasJob);
3) 속성 존재 확인 (boolean 값 반환 : Key in 객체이름 사용)
const user = {
name: 'Bill',
age: 20,
hasCar: true
}
console.log('name' in user); // true
console.log('age' in user); // true
console.log('random' in user); // false
console.log(user.hasCar); // true
4) 객체의 복사
- 대입 연산자 사용 시 문제점
const user = { name: 'Bill', age: '20' };
const user2 = user;
user2.name = 'Steve';
console.log(user.name); // Steve
// user2 속성의 값을 변경하면 user 속성의 값도 같이 변경
- assign() 을 사용
const user = { name: 'Bill', age: 20 };
const user2 = {};
for (const key in user) {
user2[key] = user[key];
}
user2.name = 'Steve';
console.log(user2);
const user3 = {};
Object.assign(user3, user);
user3.age = 30;
console.log(user3);
console.log(user);