[a1, a2, ...rest_a] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(a1); // 1
console.log(a2); // 2
console.log(a1,a2); // 1 2
console.log(rest_a); // [3, 4, 5, 6, 7, 8, 9]
console.log([a1,a2,rest_a]); // [1, 2, Array(7)]
//전개 연산자 이후 변수 입력 / 다른 속성일 경우 에러 발생
//[a1, a2, ...rest_a, a3] = [1, 2, 3, 4, 5, 6, 7, 8, 9]; // error
//[a1, a2, ...rest_a] = {a1 : 10, a2: 20}; // error
let {b1, b2, ...rest_b } = { b1 : 10, b2 : 20, b3 : 30, b4 : 40 };
console.log(b1); // 10
console.log(b2); // 20
console.log(b1,b2); // 10 20
console.log(rest_b); // { a3: 30, a4: 40 }
console.log([b1,b2,rest_b]); // [10, 20, {…}]
console.log({b1,b2,rest_b}); // {b1: 10, b2: 20, rest_b: {…}}
var { c1 : name, c2 : animal , ...rest_c } = { c1 : '코코', c2 : 'dog', c3 : 30, c4 : 40 };
console.log(name); // 원빈!
console.log(animal); // dog
console.log(rest_c); // {c3: 30, c4: 40}
let key1 = 'it is key';
let { 'an-apple':an_apple, [key1]:it_is_key } = { 'an-apple' : 10, 'it is key' : 20};
console.log(an_apple); // 10
console.log(it_is_key); // 20
({ a, b } = { a : 10, b : 20});
console.log(a); // 10
console.log(b); // 20
{ c, d } = { c : 30, d : 40}; // error
[a, b] = [10];
console.log(a); // 10
console.log(b); // undefined
var {c, d} = { c : 20};
console.log(c); // 20
console.log(d); // undefined
[a=10, b=20] = [10];
console.log(a); // 10
console.log(b); // 20
var {c = 30, d : new_name = 40} = { };
console.log(c); // 30
console.log(new_name); // 40
let arr = [1,2,3];
let copy1 = arr;
let [...copy2] = arr;
let copy3 = [...arr];
arr[0] = 'String';
console.log(arr); // [ 'String', 2, 3 ]
console.log(copy1); // [ 'String', 2, 3 ]
console.log(copy2); // [ 1, 2, 3 ]
console.log(copy3); // [ 1, 2, 3 ]
var prevState = {
name: "yuddomack",
birth: "1996-11-01",
age: 22
};
var state = {
...prevState,
age: 23
};
console.log(state); // { name: 'yuddomack', birth: '1996-11-01', age: 23 }
function renderUser({name, age, addr}){
console.log(name);
console.log(age);
console.log(addr);
}
const users = [
{name: 'kim', age: 10, addr:'kor'},
{name: 'joe', age: 20, addr:'usa'},
{name: 'miko', age: 30, addr:'jp'}
];
users.map((user) => {
renderUser(user);
});
const users2 = [
{name: 'kim', age: 10, addr:'kor'},
{name: 'joe', age: 20, addr:'usa'},
{name: 'miko', age: 30, addr:'jp'}
];
users2.map(({name, age, addr}) => {
console.log(name);
console.log(age);
console.log(addr);
});
const users3 = [
{name: 'kim', age: 10, addr:'kor'},
{name: 'joe', age: 20, addr:'usa'},
{name: 'miko', age: 30, addr:'jp'}
];
for(let {name : n, age : a} of users3){
console.log(n);
console.log(a);
}
const kim = {
name: 'kim',
age: 10,
addr: 'kor',
friends: [
{name: 'joe1', age: 20, addr:'usa'},
{name: 'joe2', age: 20, addr:'usa'},
{name: 'joe3', age: 20, addr:'usa'},
{name: 'joe4', age: 20, addr:'usa'},
{name: 'miko', age: 30, addr:'jp'}
]
};
let { name: userName, friends: [ ,,,,{ name: jpFriend }] } = kim;
console.log(userName); // kim
console.log(jpFriend); // miko
kim.friends.map(function({name, age, addr}){
console.log(name);
});
//joe1
//joe2
//joe3
//joe4
//miko
React를 하면서 복사 부분을 사용해봐서 이해는 가는데 2가지 잘 모르는 부분은 찾아볼 예정이다.
자바스크립트 {...} [...] 문법 (비구조화 할당/구조분해 할당)
자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룹니다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을
yuddomack.tistory.com
[JavaScript] 비구조화(구조분해) 할당
ES6가 등장하기 이전에 배열에 있는 요소 혹은 JSON 객체의 프로퍼티를 각각 변수에 담기위해 다음과 같이 일일이 하나하나 변수에 할당해주곤 했습니다. let users = ['홍길동', '김철수', '박민재'] le
yoo11052.tistory.com
axios 라이브러리 (0) | 2022.12.18 |
---|---|
useEffect 와Lifecycle(라이프 사이클) (0) | 2022.12.02 |
컴포넌트(1) - State (0) | 2022.11.16 |
Props와 State (0) | 2022.11.15 |
JSX 문법 (0) | 2022.11.15 |
댓글 영역