Destructuring Assignment   분할 대입 연산

(2020-03-04)

분할 할당, 비구조화 할당, Spread Operator, 전개 연산자, Multiple Assignment, 다중 할당문

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
  
  ㅇ 객체 例)
     * 객체인 경우, 배열과 달리, 이름으로 프로퍼티를 개별 변수로 분해
     - { price, title, writer } = { title : '책제목', price : 123, writer : '미상' };
     - 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)반복 가능한 객체배열 리터럴 또는 함수의 인수 목록으로 펼칠 수 있음

  ㅇ 例)
     - [..."abc"] => ["a","b","c"]
     - func(..."abc") => func("a","b","c")
     - [1, ...[2,3,4], 5] => [1,2,3,4,5]
     - func(...[1,2,3]) => func(1,2,3)


[JS 구문,연산자] 1. JS 구문 2. JS 연산자 3. 분할 대입 연산

 
        최근수정     요약목록     참고문헌