본문 바로가기
Javascript

[Javascript] ES6 - 디스트럭처링

by 기리의 개발로그 2023. 11. 27.

디스트럭처링

디스트럭처링(Destructuring) 은 구조화된 배열 또는 객체를 Destructuring(비구조화, 파괴)하여 개별적인 변수에 할당하는 것이다. 배열 또는 객체 리터럴에서 필요한 값만을 추출하여 변수에 할당한다.


배열 디스트럭처링


배열의 각 요소를 추출하여 변수 리스트에 할당하며 배열의 인덱스를 기준으로 한다.

const arar = [1, 2, 3];

const [num1, num2, num3] = arr;

console.long(num1, num2, num3);  // 1 2 3

const [a, b] = [1];
console.log(a, b)  // 1 undefined

const [a, b] = [1, 2, 3];
console.log(a, b);  // 1 2

const [a, b= 10, c =3] = [1,2];
console.log(a, b, c);  // 1 2 3

객체 디스트럭처링


객체의 각 프로퍼티를 추출하여 변수 리스트에 할당하며 프로퍼티 이름(키)을 기준으로 한다.

const name = { first: 'Sanggil', last: 'Yang' };

const { first, last } = name;

console.log(first, last);  // Sanggil Yang

const { first = 'Sanggil', last } = { last: 'Yang' };
console.log(first, last);  // Sanggil Yang

const { first: fn = 'Sanggil', last: ln } = { last: 'Yang' };
console.log(fn, ln);  // Sanggil Yang

const { prop1, prop2 } = { prop1: 'a', prop2: 'b' };
console.log({ prop1, prop2 });  // { prop1: 'a', prop2: 'b' }

또한, 키로 값을 추출할 수 있다.

const todo = { id: 1, content: 'HTML', completed: true };

// todo 객체로부터 id 프로퍼티만 추출한다.
const { id } = todo;

console.log(id);  // 1

중첩 객체는 아래와 같이 사용한다.

const person = {
  name: 'Lee',
  address: {
    zipCode: '03068',
    city: 'Seoul'
  }
};

// address 프로퍼티 키로 객체를 추출하고 이 객체의 city 프로퍼티 키로 값을 추출한다.
const { address: { city } } = person;
console.log(city);  // 'Seoul'
반응형

'Javascript' 카테고리의 다른 글

[Javascript] ES6 - 모듈  (80) 2023.11.29
[Javascript] ES6 - 클래스  (87) 2023.11.28
[Javascript] ES6 - Spread 연산자  (84) 2023.11.24
[Javascript] ES6 - Rest 파라미터  (57) 2023.11.23
[Javascript] ES6 - 화살표 함수  (62) 2023.11.22

댓글