1. 분할 대입 또는 비구조화 할당 (Destructuring Assignment) 연산
ㅇ 배열 또는 객체 또는 변수들을 개별 요소별로 분해하여,
- 각각의 요소/프로퍼티 값을 개별 변수로 분할 대입
ㅇ Perl,Python 등에서는, 다음과 같은 형태를 지원 함
- 例) a = b = c =1 # 여러 변수에 단일 값 할당
- 例) x, y = 'a', 'b' # 두 변수에 다른 값을 각각 할당
- 例) z = x, y = 'a', 'b' # 단일 변수에 다중 값 할당
- 例) x,y,z = 표현식 # 1 이상의 변수 x,y,z에 표현식 값을 각각 할당
2. [자바스크립트] 분할 대입 例
ㅇ 배열 例)
- [x, y, z] = [1, 2, 3]; // x = 1, y = 2, z = 3
- [x, y, z] = [1, 2]; // z = undefined
- x = 1; y = 2; [x, y] = [y, x] // x = 2; y = 1 (Swapping, 교환)
- [x, y, ... other] = [1, 2, 3, 4, 5]; // other = [3, 4, 5]
. ...other를 나머지 요소(rest element)라고 함
- [,x,,y] = [1,2,3,4]; // x = 2, y = 4
ㅇ 객체 例)
* 객체인 경우, 배열과 달리, 이름으로 프로퍼티를 개별 변수로 분해
- const book = { title : '책제목', price : 123 };
{ price, title, writer } = book; // price = 123, title = '책제목', writer = undefined
{ price, writer = 'anonymous'} = book; // price = 123, writer = 'anonymous'
- var {a : x, b : y} = {a : 1, b : 2} // x = 1, y = 2
- {a : x, b : y} = {a : y, b : x} // x,y 값 교환 (Swapping, 교환)
3. [자바스크립트] 전개 연산자 (Spread Operator)
ㅇ `반복 가능한 객체(Iterable Object)`를, 배열 리터럴 또는 함수의 인수 목록으로 펼칠 수 있음
- 주로, 배열 형식을 목록화시켜 다루기 쉽도록 함
ㅇ 例)
- [..."abc"] => ["a","b","c"]
- func(..."abc") => func("a","b","c")
- [1, ...[2,3,4], 5] => [1,2,3,4,5]
- [...['a','b'],...['c','d']] => ['a','b','c','d']
- func(...[1,2,3]) => func(1,2,3)