본문 바로가기
Javascript

옵셔널 체이닝 연산자

by 안자바먹지 2020. 11. 11.
728x90

ES11 (ECMAScript2020) 에 도입되었다.

옵셔널 체이닝 연산자 .? 는 좌항의 피연산자가 null 혹은 undefined인 경우 undefined를 반환하고 그렇지 않으면 우항의 프로퍼티 참조를 이어간다.

 

옵셔널 체이닝 연산자는 객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할때 유용하다. 도입되기전에는 &&를 사용한 단축 평가를 통해 변수가 null 또는 undefined가 아닌지 확인하였다.

 

// 옵셔널 체이닝 사용
let elem = null;
let value = elem?.value;

console.log(value); // undefined


// 단축연산자 사용
let elem = null;
let value = elem && elem.value;

console.log(value); // null

 

논리연산자 &&는 좌항 피연산자가 false로 평가되는 Falsy한 값 (false, undefined, null, 0, '', NaN 등등..)이면 좌항 피연산자를 그대로 반환한다. 하지만 0이나 ''는 객체로 평가될 때도 있다. 옵셔널 체이닝 연산의 경우 좌항 피연산자가 Falsy한 값이라도 null 또는 undefined가 아니라면 우항의 프로퍼티 참조를 이어간다.

 

// 단축연산자
let str = '';
let length = str && str.length;

console.log(length); // '' 가 출력되고 length를 참조하지 못한다.


// 옵셔널 체이닝 연산자
let str = '';
let length = str.?length;

console.log(length); // 0이 출력된다
728x90

'Javascript' 카테고리의 다른 글

변수 호이스팅  (0) 2020.11.16
스코프  (0) 2020.11.16
원시값과 객체  (0) 2020.11.11
객체 리터럴의 확장기능  (0) 2020.11.11
null 병합 연산자  (0) 2020.11.11

댓글