JS - 비구조화 할당 2

6379 단어 jsjs

배열 비구조화 할당으로 변수 교환

let a = 1;
let b = 2;

[a, b] = [b, a];

console.log(a, b);			// 2, 1

기존에는 temp처럼 교환에 필요한 변수를 하나 선언해서 두 값을 서로 바꿨는데 비구조화 할당을 이용해 쉽게 바꿀 수 있다.





객체 비구조화 할당 기본값

const obj = { age: undefined, name: null, grade: 'A' };

const { age = 0, name = 'noName', grade = 'F' } = obj;

console.log(age, name, grade);		// 0, null, A

객체를 비구조화 할당할 때, 현재 값이 null이면 기본값 정의를 해도
기본값이 들어가지 않는다. 반면 undefined는 가능.

function f() {
  console.log('함수f 실행');
  return 0;
}

const obj = { age: 21, grade: 'A'};
const { age = f(), grade } = obj;	// '함수f 실행' 출력 안됨

console.log(age);			// 21

기본값으로 함수의 리턴값을 넣어 줄 수도 있다.
그런데 지금같은 경우 age의 값이 있어서 비구조화 할당시 기본값인 함수 f가 호출 되지 않는다.

const obj = {};
const arr = [];

({ a: obj.a, b: arr[0] } = { a: 123, b: 456 });

console.log(obj, arr)		 // { a: 123 }, [ 456 ]

객체 비구조화 할당을 하면서 이름을 변경할 때, 다른 객체나 배열을 써주면 객체나 배열에 값을 추가할 수 있다.

좋은 웹페이지 즐겨찾기