객체

선언

const obj = new Object()
const obj = {}

두 방법에 큰 차이는 없으나 객체 리터럴 방법(2번째)이 가독성과 성능 등의 이유로 권장됨

프로퍼티 생성

const person = {
    name: 'kim',
    age: 25,
}  // 선언 시 입력

person.bloodtype = 'A' // 동적 선언

프로퍼티의 값으로는 어떤 자료형이든 가능

const person ={
    name: 'kim',
    age: 25,
    live: true,
    friends: ['song', 'ho', 'kang'],
    say: function(word) {
        alert(`${this.name} : ${word}`)
    }
}

프로퍼티 접근

const person = {
    name: 'kim',
    age: 25,
}

person.name // 'kim'
person['age'] // 25

프로퍼티 삭제

delete person.age
delete person['name']

객체 반복

for (key in object) {
    ...do something
}

Object.keys(object).map((key) => {
    ...do something
})

Object.keys()는 괄호 안의 객체의 키 값을 배열로 반환
반환된 배열은 반복 가능한 객체이기 때문에 map, forEach, reduce, for of 같은 다양한 메서드가 사용 가능
Object 생성자의 메서드는 따로 정리