[JS] 옵셔널 체이닝 연산자

codeCYJ·2022년 5월 26일
0

javaScript

목록 보기
6/35

ES11 에서 도입된 옵셔널 체이닝 연산자 ?.

좌항의 피연산자가 null또는 undefined인 경우 undefined를 반환하고,
그렇지 않으면 우항의 프로퍼티 참조를 이어나간다.

var elem = null;
var value = elem?.value;
console.log(value);     // undefined

옵셔널 체이닝 연산자가 도입되기 이전에는 논리연산자를 사용한 단축평가를 통해 변수가 null인지 undefined인지 확인했다.

var elem = null;
var value = elem && elem.value;
console.log(value);     // null

논리연산자 &&는 좌항 피연산자가 false로 평가되는 falsy값
(false, undefined, null, 0, -0, NaN, '')이면 좌항을 그대로 반환한다.
하지만 0이나 ''은 객체로 평가될 때도 있다.

var str = '';
var length = str && str.length;
console.log(length);  // ''   - 문자열의 길이를 참조하지 못한다.

하지만 옵셔널 체이닝 연산자는 좌항 피연산자가 falsy값 이라도 null 또는 undefined가 아니면 우항의 프로퍼티 참조를 이어간다.

var str = '';
var length = str?.length;
console.log(length);  // 0
profile
안녕하세요

0개의 댓글