본문 바로가기
Node.js

비구조화 할당

by Hangii 2023. 1. 26.

javascript에서 코드를 간결하게 만들기 위해 생긴 문법이다.

 

예전에는 다음과 같이 세 줄로 써야했던 코드를

const example = { a:123, b: { c: 135, d:146 }}

const a = example.a;

const d = example.b.d;

 

비구조화 할당을 사용하면 한 줄로 작성 가능하다.

const { a, b: {d}} = example;  //example에서 a와 b 안의 d를 꺼내두라는 뜻이다.

 

콘솔을 찍어보면 다음과 같은 출력이 나온다.

console.log(a);  //123

console.log(d);  //146

 

예제를 하나 더 살펴보자. 배열을 사용하는 경우에도 비구조화 할당을 하면 코드가 간결해진다.

arr = [1,2,3,4,5];

const x = arr[0];

const y = arr[1];

const z = arr[4];

이렇게 세 줄로 써야했던 코드가 한 줄로 줄어든다.

const [x,y, , ,z] = arr;  //배열 arr의 0번째에 x, 1번째에 y, 4번째에 z를 할당하라는 뜻이다. 빈칸으로 남겨둔 자리의 원소는 할당하지 않겠다는 의미이다.

 

 

  • 첫번째 예제와 같이 객체를 다루는 경우 비구조화 할당을 할 때 key 값(a,b,c,d)이 일치해야하고, 두번째 예제와 같이 배열을 다루는 경우 자리(배열의 몇번째 원소인지)가 일치해야한다. 
  • this를 사용하는 함수의 경우, 구조 분해 할당을 하면 오류가 생기므로 this가 있으면 비구조화를 하지 않는 것이 좋다.

 

 

'Node.js' 카테고리의 다른 글

[Backend] 노드 기능  (0) 2023.01.26
[Backend] 프로미스  (1) 2023.01.26
화살표 함수  (0) 2023.01.25
템플릿 문자열, 객체 리터럴  (0) 2023.01.24
var, const, let  (0) 2023.01.24

댓글