(JavaScript) spread 연산자 / 비구조화 할당(구조분해)

김정욱·2020년 9월 14일
0

JavaScript

목록 보기
7/10
post-thumbnail

... 연산자(spread 연산자)


배열 또는 객체에 대해 iterable Object(열거 가능한 오브젝트)
"개별" 요소로 분리한다.


[사용]

  • 배열(Array) spread
let a = [1, 2];
let b = [3, 4];
let spread = [...a, ...b, 5];
console.log(spread); // [1, 2, 3, 4, 5]

  • 객체(Object) Spread
let a = [{name:1}, {name:2}];
let b = [{name:3}, ...a];
console.log(b); // [ {name: 1}, {name: 2}, {name: 3} ]

Rest parameter와 spread 연산자

  • rest parameter
    : 하나 이상의 파라미터를 묶는 것
      spread연산자(...)를 사용하여 값을 묶어서 함수나 객체로 전달할 때 사용
function hi(...rest){
   console.log(rest)
}
let num = [1,2,3]; 
hi(...num); // [1, 2, 3]
  • spread 연산자
    : 오브젝트를 하나 씩 전개 하는 것
       rest parameter와 논리적으로 반대의 과정

비 구조화 할당(구조분해 문법)


배열이나 객체속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식(expression)


[사용]

  • 많이 사용하는 방식
let object = { name: "kjw", pw: "1234"};

const { name, pw } = object;
console.log(name); // kjw
console.log(pw); // 1234
  • 함수의 파라미터에 사용
const object = { a: 1, b: 2 };

function print({ a, b }) {
  console.log(a); // 1
  console.log(b); // 2
}
print(object);
  • default값 지정
let object = { name: "kjw"};

const { name, pw="d5678" } = object; // pw의 default값 지정
console.log(name); // kjw
console.log(pw); // d5678
  • 다른 변수로 받기
/* 객체(object) 생성 */
let object = { name: "kjw", pw: "1234"};

/* 구조 분해 할당 사용 */
const { name : n , pw : p } = object;

/* 출력 */
console.log(n); // kjw
console.log(p); // 1234 
profile
Developer & PhotoGrapher

0개의 댓글