객체는 중괄호로 작성하고 키(key)와 값(value)으로 구성된 프로퍼티가 들어감
// 객체
const superman = {
name: 'clark',
age: 33,
}
// 접근
superman.name // 'clark'
superman['age'] // 33
// 추가
superman.gender = 'male';
superman['hairColor'] = 'black';
// 삭제
delete superman.hairColor;
---------------------------------
// 단축 프로퍼티
const name = 'clark';
const age = 33;
const superman = {
name, // name : name
age, // age : age
gender : 'male',
}
// 프로퍼티 존재 여부 확인
const superman = {
name : 'clark';
age : 33;
}
supernam.birthDay; // undefined
'birthDay' in superman; // false
'age' in superman; // true
-------------------------------------------
❗️ in 연산자를 사용하면 프로퍼티가 있는지 확인 가능
❓ . 이나 []를 사용하지 않고 in 쓸는 이유
→ 어떤 값이 넘어올지 확실하지 않을때,
함수 인자로 받거나 API 통신을 통해 데이터를 받아올때
-------------------------------------------
// for ... in 반복문
// 객체를 순회하면서 값을 얻을 수 있음 (for문 보다 간단)
for (let key in superman) {
console.log(key);
console.log(superman[key])
}
⭐️ 예제
// 이름과 나이를 받아서 객체로 반환하는 함수
function makeObject (name, age) {
return {
name, // name : name
age, // age : age
hobby : 'football',
}
}
const Mike = makeObject ("Mike", 30);
console.log(Mike);
// Object {
// age : 30,
// hobby: "football",
// name: "Mike"
// }