거북이개발자

[ES11] Optional chaining 본문

Web/ES6

[ES11] Optional chaining

류정식 2021. 2. 7. 15:18

1. Optional chaining

const person1={
  name:'Ryu'
  job : {
    title 'Engineer',
    manager:{
      name : bob,
    },
  },
};


const person2={
  name:'Kim',
};

{
  function printManager(person){
    console.log(person.job.manager.name);
  }
}

 

person1 과 person2의 객체가 있고, 매니저의 이름을 프런트하는 함수를 구현하고 싶다.

 

 

 

 

(1)문제점

printManager(person1);

 

printManager(person2);

위의 사진처럼 person2객체는 job, manger이 정의 되어있지 않아서 오류가 난다.

 

 

 

 

 

(2)해결(&&연산자)

{
  function printManager(person){
    console.log(person.job && preson.job.manager && person.job.manager.name);
  }
}

위처럼 && 연산자를 이용할 수 도 있다.

 

 

 

 

 

(3)해결(Optional chaining)

 

{
  function printManager(person){
    console.log(person.job?.manager?.name);
  }
}

optional chaining을 이용하면 더욱 간소하게 표현할 수 있다.

'Web > ES6' 카테고리의 다른 글

[ES11] Nullish Coalescing Operator  (0) 2021.02.07
[ES6] Template Literals  (0) 2021.02.07
[ES6] Default parameters  (0) 2021.02.07
[ES6] Spread Syntax  (0) 2021.02.07
[ES6] Destructuring Assignment  (0) 2021.02.07
Comments