반응형
비구조화 할당
const user = { name: 'stir', password: '1234' };
const { name, password } = user; //'stir', '1234'
Spread
const user = ['stir1', 'stir2'];
const allUser = [...user, 'stir3']; //'stir1', 'stir2', 'stir3'
Rest
const user = { name: 'stir', password: '1234', id:'constant',};
const { name, ...test2 } = user;
console.log(name); //stir
console.log(test2); //1234, constant
//rest는 나머지라는 뜻으로 name에는 이미 할당되어 있어서 나머지는 test2에 할당된다.
차이점
위의 문법은 전부 객체(Object)형, 배열(Array)형 둘다 사용 가능한 문법이다.
다만, 타입의 특성마다 조금씩 차이는 존재한다.
const arr = ["1", "2", "3", "4"]
const [firstElement, ...rest] = arr
console.log(firstElement) // "a"
위 코드의 배열형은 firstElement가 정상적으로 출력된다.
const arr = {a:'1', b:'2',}
const {firstElement, ...rest} = arr
console.log(firstElement) // undefined
하지만 객체형은 출력하지 못한다.
const arr = {a:'1', b:'2',}
const {a, ...rest} = arr
console.log(a) // 1
위 코드 처럼 객체형은 같은 객체 이름으로 받아야만 출력이 가능하다.
728x90
'📜 Js' 카테고리의 다른 글
[JavaScript] 프로토타입 쓰는 이유, 목적 그리고 사용법 (0) | 2022.12.18 |
---|---|
React를 이용한 다른 색깔 찾기 게임 Clone Coding (0) | 2022.02.05 |
alert 위치 모를때 위치 찾는 법 (0) | 2022.01.20 |
[ES6] Ajax(Callback, Promise, Async&Await) (0) | 2022.01.04 |
[ES6] Arrow Function(람다식 함수) 사용법 및 this (0) | 2021.02.08 |