JS - 비구조화 할당 2
배열 비구조화 할당으로 변수 교환
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 ]
객체 비구조화 할당을 하면서 이름을 변경할 때, 다른 객체나 배열을 써주면 객체나 배열에 값을 추가할 수 있다.
Author And Source
이 문제에 관하여(JS - 비구조화 할당 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@hemtory/JSDestructuringAssignment2
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 ]
객체 비구조화 할당을 하면서 이름을 변경할 때, 다른 객체나 배열을 써주면 객체나 배열에 값을 추가할 수 있다.
Author And Source
이 문제에 관하여(JS - 비구조화 할당 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hemtory/JSDestructuringAssignment2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)