안녕하세요. 혀코입니다.
Node.js에서 ES6 기능인 Object destructuring을 사용하는 방법에 대해서 알아보겠습니다.
app.js를 다음과 같이 작성합니다.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const label = product.label
const price = product.price
console.log(label)
console.log(price)
여기서, label과 price 변수에 product object의 각 key값에 해당하는 value를 할당하기 위해서 각각 product.label, product.price 이렇게 지정했는데요.
ES6에서 지원하는 기능인 object destructuring 기능을 사용하면 다음과 같이 지정해도 동일한 결과를 갖게 됩니다.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const {label, price} = product
console.log(label)
console.log(price)
여기서 참고할 사항으로 product object에 없는 key 값을 변수명으로 지정하면, 해당 변수는 undefined가 되는 점 참고하세요.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const {label, price, ratings} = product
console.log(label)
console.log(price)
console.log(ratings)
$ node app.js
Avengers Shirt
7
undefined
또한, object의 key 값을 동일하지 않은 변수명으로 사용하고자 할 때는 다음과 같이 쓰면 됩니다.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const {label:title, price, ratings} = product
console.log(title)
console.log(price)
console.log(ratings)
이때는 console.log(label) 로 진행하면 변수가 존재하지 않아서 에러가 나는 점 참고해 주세요.
또한, Object Destructuring을 사용할때, 다음과 같이 기본값 지정을 할 수 있습니다.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const {label:title, price, ratings = 4} = product
console.log(title)
console.log(price)
console.log(ratings)
$ node app.js
Avengers Shirt
7
4
그럼 함수에서 Object Destructuring 하는 방법도 알아보겠습니다.
const product = {
label: 'Avengers Shirt'
price: 50
stock: 7
}
const transaction = (type, {label, stock}) => {
console.log(type, label, stock)
}
transaction('order', product)
transaction 함수를 콜하는 부분을 보면, parameter로 product object를 넘기고 있습니다.
그러면 transaction 함수 정의하는 부분에서 이 object parameter를 { } 안에 object의 key 값으로 지정할 수 있습니다.
$ node app.js
그럼 다음과 같은 결과를 출력합니다.
order Avengers 7
이렇게 Node.js에서 ES6 기능인 Object destructuring을 사용하는 방법에 대해서 알아보았습니다.
유용하셨다면, 공감과 구독 부탁 드립니다.
감사합니다.
댓글