공부블로그

구조분해할당 본문

자바스크립트

구조분해할당

떠어영 2023. 2. 22. 21:24

자바스크립트에서 자료를 가져오고 뿌릴 때 자주 사용하게 되는 구조분해 할당을 정리해보자

간단하게 말하면 객체안의 각각의 요소를 하나씩 분해해주는 것~

 

  • 기본할당
var o = {p: 42, q: true};
var {p, q} = o;

console.log(p); // 42
console.log(q); // true

 

  • 새로운 변수 이름으로 할당
var o = {p: 42, q: true};
var {p: foo, q: bar} = o;

console.log(foo); // 42
console.log(bar); // true

 

  • 기본값 : 객체로부터 해체된 값이 undefined인 경우 변수에 기본값을 할당할 수 있다.
var {a = 10, b = 5} = {a: 3};

console.log(a); // 3
console.log(b); // 5

 

  • 기본값을 갖는 새로운 변수 이름 할당
var {a: aa = 10, b: bb = 5} = {a: 3};

console.log(aa); // 3
console.log(bb); // 5

 

  • 함수 매개변수의 기본값 설정하기
function drawES5Chart(options) {
  options = options === undefined ? {} : options;
  var size = options.size === undefined ? 'big' : options.size;
  var cords = options.cords === undefined ? { x: 0, y: 0 } : options.cords;
  var radius = options.radius === undefined ? 25 : options.radius;
  console.log(size, cords, radius);
  // 이제 드디어 차트 그리기 수행
}

drawES5Chart({
  cords: { x: 18, y: 30 },
  radius: 30
});

 

  • 중첩된 객체의 구조분해 할당
var metadata = {
    title: "Scratchpad",
    translations: [
       {
        locale: "de",
        localization_tags: [ ],
        last_edit: "2014-04-14T08:43:37",
        url: "/de/docs/Tools/Scratchpad",
        title: "JavaScript-Umgebung"
       }
    ],
    url: "/en-US/docs/Tools/Scratchpad"
};

var { title: englishTitle, translations: [{ title: localeTitle }] } = metadata;

console.log(englishTitle); // "Scratchpad"
console.log(localeTitle);  // "JavaScript-Umgebung"

 

  • 함수 매개변수로 전달된 객체에서 필드 해체하기
function userId({id}) {
  return id;
}

function whois({displayName: displayName, fullName: {firstName: name}}){
  console.log(displayName + " is " + name);
}

var user = {
  id: 42,
  displayName: "jdoe",
  fullName: {
      firstName: "John",
      lastName: "Doe"
  }
};

console.log("userId: " + userId(user)); // "userId: 42"
whois(user); // "jdoe is John"

'자바스크립트' 카테고리의 다른 글

Confirm 모달창 만들기  (0) 2022.12.12
자바스크립트 중급강좌 #1- 코딩앙마  (0) 2022.04.03