36장 디스트럭처링 할당
36.1 배열 디스트럭처링 할당
const arr = [1,2,3]
const [a, b, c] = arr
console.log(a, b, c) // 1 2 3
// 배열 디스트럭처링 할당을 위해서는 할당 연산자 왼쪽에 할당받을 변수를 선언해야 한다.
// 이때 변수를 배열 리터럴 형태로 선언한다.
const [x, y] = [1, 2]
// 이때 우변에 이터러블을 할당하지 않으면 에러가 발생한다.
const [x, y] // SyntaxError: ~~~
const [a, b] = {} // TypeError: ~~~
// 배열 디스트럭처링 할당의 변수 선언문은 선언과 할당을 분리할 수도 있다.
// 단, 이 경우 const 키워드로 변수를 선언할 수 없다.
let x, y
[x, y] = [1, 2]
// 배열 디스트럭처링 할당의 기준은 배열의 인덱스로, 순서대로 할당된다.
// 변수의 개수와 이터러블 요소의 개수가 반드시 일치할 필요는 없다.
const [a, b] = [1, 2]
console.log(a, b) // 1 2
const [c, d] = [1]
console.log(c, d) // 1 undefined
const [e, f] = [1, 2, 3]
console.log(e, f) // 1 2
const [g, , h] = [1, 2, 3]
console.log(g, h) // 1 3
// 배열 디스트럭처링 할당을 위한 변수에 기본값을 설정할 수 있다.
const [a, b, c = 5] = [1, 2]
console.log(a, b, c) // 1 2 5
// 기본값보다 할당된 값이 우선한다.
const [a, b, c = 5] = [1, 2, 3]
console.log(a, b, c) // 1 2 3
// 필요한 요소만 추출하여 변수에 할당하고 싶을 때 유용하다.
// ex) p.638-639 URL을 파싱해 protocol, host, path 객체 생성
// Rest 요소 ...을 사용할 수 있다.
// Rest 요소는 Rest 파라미터와 마찬가지로 반드시 마지막에 위치해야 한다.
const [x, ...y] = [1, 2, 3]
console.log(x, y) // 1 [2, 3]36.2 객체 디스트럭처링 할당
Last updated