아침부터 객체에 새로운 요소를 추가하고 싶어져서 실험해보았다.
person을 만들어서 객체에 정보를 넣어주고 곧바로 아래 코드처럼 출력해보았다.
const person = {
name: 'Alice',
age: 25,
city: 'seoul'
};
const { name, year=2040 } = person;
console.log(person.name) //Alice
console.log(person.year) //undefined
왜 언디파인드가 나오는지 의문이 들었다.
person객체에 존재하지 않는 속성이기 때문에 undefined 가 나온댄다...
즉, 객체에 year이라는 속성이 존재하지 않기 때문에 나온다는 거라는데 그래서 추가하려고 한 게 아닌가?
그렇다면 어떻게 해야 객체에 새로운 속성이 존재하게 될까?
person.year = 2040;
위 코드처럼 넣어주면 된다.
그러면 새로운 속성이 객체에 생선된다.
그러나 걷기반에서는 아래와 같이 스프레드연산자를 이용해서 배열에 추가하는 걸 배웠다.
그렇다면 person.year하면 2040이 나오게 될까?
const person = {
name: 'Alice',
age: 25,
city: 'seoul'
};
const newperson = {
...person,
year: 2040 //이건 기존객체에 새로운 요소를 추가한 게 아니다.
}
console.log(newperson)
console.log(person.name) //Alice
console.log(person.year) //undefined
역시나 undefined가 나온다.
이유는, 스프레드 연산자는 person의 속성을 복사하여 새로운 객체를 생성하기 때문에 person.year이 아니라 newperson.year이 돼야 한다.
'sparta > 본캠프' 카테고리의 다른 글
[reduce] (0) | 2024.10.26 |
---|---|
[Spread 및 Rest 연산자] (1) | 2024.10.26 |
[주말]자바스크립트 최종 (두고두고 볼 내용) (0) | 2024.10.26 |
[본캠프]19일차 (0) | 2024.10.25 |
[본캠프]18일차 (0) | 2024.10.24 |