Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 실행컨텍스트스택
- Block
- html
- 실행컨텍스트 실행과정
- 노마드코더
- 개발일기
- state hook
- .current
- 그래머인유즈
- 실행컨텍스트콜스택
- 영어공부
- 실행컨텍스트란
- Mini Node Server
- 고차함수
- 개발공부
- 영어
- .env
- 실행컨텍스트자바스크립트
- 실행컨텍스트 동작과정
- npm 에러
- 실행컨텍스트 면접
- css
- CORS
- styled-component
- 전역상태
- useRef역할
- 객체
- 로컬상태
- CLI
- 알고리즘
Archives
- Today
- Total
오늘도 삽질중
구조 분해할당(Destructing) 본문
구조 분해할당(Destructing)
- 배열과 객체의 속성을 해체하여 그 값을 개별 변수로 받는방법
예시
const arr = [1,2,3]
const [first, second, third] = arr
let x,y,z
[x,y,z] = arr;
예시
let x, y, z;
[x, y] = [1, 2];
console.log(x, y); // 1 2
[x, y] = [1];
console.log(x, y); // 1 undefined
[x, y] = [1, 2, 3];
console.log(x, y); // 1 2
[x, , z] = [1, 2, 3];
console.log(x, z); // 1 3
// default value
[x, y, z = 3] = [1, 2];
console.log(x, y, z); // 1 2 3
[x, y = 10, z = 3] = [1, 2];
console.log(x, y, z); // 1 2 3
// spread operator
[x, ...y] = [1, 2, 3];
console.log(x, y); // 1 [ 2, 3 ]
출처: [기본기를 쌓는 정아마추어 코딩블로그]
예시
배열 (분해 후 새 변수에 할당)
const [a, b, ...reset] = [10, 20, 30, 40, 50]
// a,b,reset는 각각 어떤 값인가?
객체(분해 후 새 변수에 할당)
const {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}
// a, b, rest값?
객체의 경우 배열과 다른점이 있는데 객체의 속성으로 받아야 한다는 점이다.
// ES6
const obj = { firstName: 'soyoung', lastName: 'park' };
const { firstName, lastName } = obj;
// const {f,l} = obj; 이렇게 받을 수 없다.**
console.log(firstName, lastName); // soyoung park
속성명으로 변수를 선언하고 받아야 한다.
function margin() {
const left = 1, right = 2, top = 3, bottom = 4;
return { left, right, top, bottom };
}
const { left, bottom } = margin();
//필요한 프로퍼티만 이름으로 가져올 수 있음.
console.log(left, bottom); // 1 4
//중첩 객체에서 가져오는 방법
function settings() {
return { display: { color: 'red' }, keyboard: { layout: 'qwerty'} };
}
const { display: { color: displayColor }, keyboard: { layout: keyboardLayout }} = settings();
console.log(displayColor, keyboardLayout); // red qwerty
출처: [기본기를 쌓는 정아마추어 코딩블로그]
예제: 함수에서 객체 분해
- 객체에서 구조 분해 할당을 사용하는 경우 선언(const, let, var)과 함께 사용하지 않으면 에러가 발생할 수 있다.
function whois({displayName: displayName, fullName: {firstName: name}}){
console.log(displayName + " is " + name);
}
let user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
whois(user)
'[Js Node] > 스코프 , 클로저 , Spread , Rest' 카테고리의 다른 글
Spread / Reset 문법 (0) | 2021.09.09 |
---|
Comments