destructing
MDN 번역이 올라와있지 않네요. 누가 좀...^^
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
강의에서는 요즘 최근 트렌디한 언어에서는 대부분 사용하고 있어서 익숙할것이라고 했는데... 최근 언어라고는 들여다본적이 없어서 익숙하지가 않습니다. destructing라는 표현이 뭔가 파괴한다는 의미보다는 잘라내서 처리한다는 의미에 가깝다는.
Array
{
let [a, b] = [1, 2];
console.log(a, b); //1 2
let [c, d, f] = [1, 2, 3];
console.log(c, d, f); // 1 2 3
let [g, , h] = [1, 2, 3];
console.log(g, h); // 1 3
let [i = 3, j] = [, 2];
console.log(i, j); // 3 2
}
2차까지는 let
을 쓸 때 블럭을 지정하는 걸 그냥 저렇게 하면 되는걸 모르고 쓸데없이 if
문 똥을 싸놓았습니다. 다른 코드를 보니 저렇게 블럭만 지정해놓더군요.
아래와 같이 let
을 쓰지 않으면 구글 크롬 48 버전에서는 Invalid left-hand side in assignment
라고 오류 처리합니다. 파이어폭스에서는 처리가 되고요.
{
[k, l] = [1, 2];
console.log(k, l); // 1 2
}
Object
{
let {a:c, b:d} = {a:1, b:2};
console.log(c, d); // 1 2
}
오브젝트 관련 내용은 설명을 들었는데 교안을 다시 봐도 잘 모르겠네요. 큰일이당. 혹 다른 분이 설명을 올리신다면 업데이트해보겠습니다. 하여간 오브젝트에 관한 설명 다음에 나오는 이 코드가 대단히 감동적이어야 하는데...이런 스타일에 익숙하지 않아서 그런지 그닥 감동은 ㅠㅠ
{
const data = {
result: 'ok',
meta: {
title: 's65',
times: 8,
location: 'piki'
},
items: [{
age: 10,
name: 'hika'
}, {
age: 20,
name: 'roasterK'
}]
}
let {
meta: {
title,
times,
location
},
items: [{
age: age1,
name: name1
}, {
age: age2,
name: name2
}]
} = data;
console.log(title, times, location, age1, name1, age2, name2);
// s65 8 piki 10 hika 20 roasterK
}