⭐ 참고 이터러블(interable)?
→ 자료를 반복할 수 있는 객체를 말하는 것이다. 우리가 흔히 쓰는 배열 역시 이터러블 객체이다.
// ES5의 경우
var arr = [1, 2, 3];
var one = arr[0];
var two = arr[1];
var three = arr[2];
console.log(one, two, three); // 1, 2, 3
// ES6의 경우
// 변수 one, two, three를 선언하고 배열 arr을 디스트럭처링하여 할당한다.
// 이때 할당 기준은 배열의 인덱스다.
const arr = [1, 2, 3];
const [one, two, three] = arr;
console.log(one, two, three); // 1 2 3
// 에러가 나는 경우
const [x, y];
const [a, b] = {}; // TypeError: {}is not iterable
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 = 3] = [1, 2];
console.log(a, b, c); // 1 2 3
// 기본값보다 할당된 값이 우선된다.
const [e, f = 10, g = 3] = [1, 2];
console.log(e, f, g); // 1, 2, 3
// ES5
var user = { name: "Kim", age: 29 }
var name = user.name;
var age = user.age;
console.log(name, age); // Kim 29
// ES6
const user = { name: "Kim", age: 29 }
const { name, age } = user;
console.log(name, age); // Kim 29
// 에러가 나는 경우
const { name, age };
const { name, age } = null;
const user = { name: "Kim", age: 29 };
const { name: n, age: a } = user;
console.log(n, a); // Kim 29
const { name: "Kim", age } = { age: 29 };
console.log(name, age); // Kim 29
...