구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식입니다.
=> js이니 let, var 처리 해줘야함
=> const도 되나?
=> 된다.
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(a); // 10
console.log(b); // 20
console.log(rest); // [30, 40, 50]
=> ...으로 다수의 정의도 가능
({ a, b } = { a: 10, b: 20 });
console.log(a); // 10
console.log(b); // 20
=> object 형식으로도 가능
=> Node.js에서 한번 겪었던 방식
구조 분해 할당은 Perl이나 Python 등 다른 언어가 가지고 있는 기능입니다.
=> 맞아 이거 때문에 알고리즘 문제 푸는데도 Python이 더 편리했음
=> 근데 Perl이 뭐임?
=> 인터프리터 언어 중 하나
변수에 기본값을 할당하면, 분해한 값이 undefined일 때 그 값을 대신 사용합니다.
var a, b;
[a=5, b=7] = [1];
console.log(a); // 1
console.log(b); // 7
다음과 같이 필요하지 않은 반환 값을 무시할 수 있습니다.
function f() {
return [1, 2, 3];
}
var [a, , b] = f();
console.log(a); // 1
console.log(b); // 3
[,,] = f();
모두 무시도 가능!
나머지 요소의 오른쪽 뒤에 쉼표가 있으면 SyntaxError가 발생합니다.
var [a, ...b,] = [1, 2, 3];
// SyntaxError: rest element may not have a trailing comma
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
=> 정규 표현식은 조금 나중에...