[TIL] 옵셔널 체이닝

sooyoung choi·2023년 12월 5일
0

Javascript, Node.js

목록 보기
32/37
post-thumbnail

옵셔널 체이닝


  • ?.
  • ?. 앞에 평가 대상이 undefinednull이면 평가를 멈추고 undefind 를 반환한다.
  1. obj?.prop
    – obj가 존재하면 obj.prop을 반환하고, 그렇지 않으면 undefined를 반환함

  2. obj?.[prop]
    – obj가 존재하면 obj[prop]을 반환하고, 그렇지 않으면 undefined를 반환함

  3. obj?.method()
    – obj가 존재하면 obj.method()를 호출하고, 그렇지 않으면 undefined를 반환함


let user = {};
console.log(user?.address?.street)	// undefined
let user = null;

console.log( user?.address ); // undefined
console.log( user?.address.street ); // undefined       

⚠ 남용하지 말 것!
존재하지 않아도 괜찮은 대상에만 사용해야한다.


  1. 단락 평가
  • 왼쪽 평가대상에 값이 없으면 즉시 평가를 멈춘다.
let user = null;
let x = 0;

user?.sayHi(x++); // 아무 일도 일어나지 않습니다.

alert(x); // 0, x는 증가하지 않습니다.

0개의 댓글