2023.06.16
let obj = { fisrt: 1, second: 2 };
let a = obj.a; // 오래된 수동 디스트럭처링
let { fisrt: b } = obj; // 새로운 디스트럭처링 구문
console.log(a); // 1;
console.log(b); // 1;
let { first: a } = { first: 42 };
let obj = { first: 2, second: 3 };
let { third: c } = obj;
console.log(c); // undefined
let obj = { first: 2, second: 3 };
let { first } = obj;
console.log(first); // 2
let obj = { first: 2, second: 3 };
let { first, second } = obj;
// 위 코드는 다음 코드와 같다.
let obj = { first: 2, second: 3 };
let first = obj.first,
second = obj.second;
let first, second;
{first, second} = getSomeObject(); // 문법 오류
({first, second} = getSomeObject()); // 동작함
let { first, second } = 42;
// first와 second 모두 undefined
const temp = 42;
let first = temp.first,
second = temp.second;
// first와 second 모두 undefined
const arr = [1, 2];
const [first, second] = arr;
console.log(first, second); // 1, 2
// 위 코드는 다음 코드와 같다.
const arr = [1, 2];
const first = arr[0],
second = arr[1];
console.log(first, second); // 1, 2
[
는 초기 중괄호 {
와 같이 모호하지 않다.const arr = [1, 2];
let first, second;
[first, second] = arr;
console.log(first, second); // 1, 2
const obj = { first: 1, second: 2 };
const { third = 3 } = obj;
console.log(third); // 3
const obj2 = { fourth: 0 };
const { fourth = 3 } = obj2;
console.log(fourth); // 0, 3이 아님
const getDefault = (val) => val;
const obj = { first: 1, second: undefined };
const { first = getDefault('it is 1'), second = getDefault('it is 2'), third = getDefault(second) } = obj;
console.log(first); // 1
console.log(second); // it is 2
console.log(third); // it is 2
const a = [1, 2, 3, 4];
const [first, second, ...rest] = a;
console.log(first); // 1
console.log(second); // 2
console.log(rest); // [3, 4]
const obj = { 'my-name': 1 };
const { 'my-name': myName } = obj;
console.log(myName); // 1
const arr = [1, 2, 3, 4, 5];
const [first, , , last] = arr; // 배열 디스트럭처링
const { 0: a, 4: e } = arr; // 객체 디스트럭처링
console.log(first, last); // 1, 5
console.log(a, e); // 1, 5
let source = { a: 'ayy', b: 'bee' };
let name = Math.random() < 0.5 ? 'a' : 'b';
let { [name]: dest } = source;
console.log(dest); // 반은 "ayy", 반은 "bee";
const obj = { a: [1, 2, 3], b: [4, 5, 6] };
let {
a: [first, second],
} = obj;
console.log(first, second); // 1, 2
function example(first, { a, b }, last) {
console.log(first, a, b, last);
}
const o = { a: 'ayy', b: 'bee', c: 'see', d: 'dee' };
example('alpha', o, 'omega'); // "alpha" "ayy" "bee" "omega"
example('primero', { a: 1, b: 2 }, 'ultimo'); // "primero" 1 2 "ultimo"
function example(first, { a, b }, last) {
console.log(first, a, b, last);
}
const o = { a: 'ayy', b: 'bee', c: 'see', d: 'dee' };
example('alpha', o, 'omega'); // "alpha" "ayy" "bee" "omega"
example('primero', { a: 1, b: 2 }, 'ultimo'); // "primero" 1 2 "ultimo"
const arr = [
{ name: 'one', value: 1 },
{ name: 'two', value: 2 },
{ name: 'forty-two', value: 42 },
];
for (const { name, value } of arr) {
console.log('Name: ' + name + ', value: ' + value);
}
const obj = { a: 1, b: 2, c: 3 };
for (const name in obj) {
if (obj.hasOwnProperty(name)) {
const value = obj[name];
console.log(name + ' = ' + value);
}
}
const obj = { a: 1, b: 2, c: 3 };
for (const [name, value] of Object.entries(obj)) {
console.log(name + ' = ' + value);
}
const { firstName, lastName } = getThePerson();
console.log(firstName, lastName);