320x100
320x100
구조 분해 할당
: 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식
let a, b, rest;
[a, b] = [10, 20];
console.log(a);
// expected output: 10
console.log(b);
// expected output: 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// expected output: Array [30,40,50]
기본 변수 할당
var foo = ["one", "two", "three"];
var [red, yellow, green] = foo;
console.log(red); // "one"
console.log(yellow); // "two"
console.log(green); // "three"
선언에서 분리한 할당
var a, b;
[a, b] = [1, 2];
console.log(a); // 1
console.log(b); // 2
기본값 할당
var a, b;
[a=5, b=7] = [1];
console.log(a); // 1
console.log(b); // 7
변수값 교환하기
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
함수가 반환한 배열 분석
function f() {
return [1, 2];
}
var a, b;
[a, b] = f();
console.log(a); // 1
console.log(b); // 2
일부 반환 값 무시하기
function f() {
return [1, 2, 3];
}
var [a, , b] = f();
console.log(a); // 1
console.log(b); // 3
변수에 배열의 나머지를 할당하기
var [a, ...b] = [1, 2, 3];
console.log(a); // 1
console.log(b); // [2, 3]
정규 표현식과 일치하는 값 해체하기
function parseProtocol(url) {
var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
if (!parsedURL) {
return false;
}
console.log(parsedURL); // ["https://developer.mozilla.org/en-US/Web/JavaScript", "https", "developer.mozilla.org", "en-US/Web/JavaScript"]
var [, protocol, fullhost, fullpath] = parsedURL;
return protocol;
}
console.log(parseProtocol('https://developer.mozilla.org/en-US/Web/JavaScript')); // "https"
for of 반복문과 구조 분해
var people = [
{
name: "Mike Smith",
family: {
mother: "Jane Smith",
father: "Harry Smith",
sister: "Samantha Smith"
},
age: 35
},
{
name: "Tom Jones",
family: {
mother: "Norah Jones",
father: "Richard Jones",
brother: "Howard Jones"
},
age: 25
}
];
for (var {name: n, family: { father: f } } of people) {
console.log("Name: " + n + ", Father: " + f);
}
// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom Jones, Father: Richard Jones"
중첩된 객체 및 배열의 비구조화
const kim = {
name: 'kim',
age: 10,
addr: 'kor',
friends: [
{name: 'joe', age: 20, addr:'usa'},
{name: 'miko', age: 30, addr:'jp'}
]
};
var { name: userName, friends: [ ,{ name: jpFriend }] } = kim;
console.log(userName); // kim
console.log(jpFriend); // miko
{ .. } [ ... ] 문법
const option = require('../services/option');
cosnt control = {
start: option.start(),
}[menu];
// option.start를 실행
control(start);
Refference
구조 분해 할당 - JavaScript | MDN
구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식입니다.
developer.mozilla.org
자바스크립트 {...} [...] 문법 (비구조화 할당/구조분해 할당)
자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룹니다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을
yuddomack.tistory.com
300x250
728x90
'Programming > JavaScript' 카테고리의 다른 글
자바스크립트 배열 중복 요소 제거 방법 (reduce, filter, set) (0) | 2022.04.19 |
---|---|
바닐라 자바스크립트란? (0) | 2022.04.04 |
모던 자바스크립트 (자료구조와 자료형) 3-9. JSON과 메서드 (0) | 2022.04.03 |
모던 자바스크립트 (자료구조와 자료형) 3-8. 위크맵과 위크셋 (0) | 2022.04.03 |
모던 자바스크립트 (자료구조와 자료형) 3-7. 배열 (0) | 2022.04.03 |