본문 바로가기

Study/JS

옵셔널체이닝연산자

 

 

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
 

 


출처

 

모던 자바스크립트 Deep Dive: 자바스크립트의 기본 개념과 동작 원리

269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자! 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어난 자바스크립트는 과도

wikibook.co.kr

 

 

'Study > JS' 카테고리의 다른 글

객체  (0) 2022.09.22
ES6  (0) 2022.09.22
반복문  (0) 2022.09.22
조건문  (0) 2022.09.22
연산자  (0) 2022.09.22