옵셔널 체이닝(Optional Chaining) 연산자 - ?.
옵셔널 체이닝(Optional Chaining) 연산자란 ES11에서 도입되었는데 좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고, 그렇지 않으면 우항의 프로퍼티의 참조를 이어간다.
var elem = null;
//elem이 null 또는 undefined이면 undefined를 반환하고, 그렇지 않다면 우항의 프로퍼티 참조를 이어간다
var value = elem.value;
console.log(value) //undefined
옵셔널 체이닝 연산자 ?.는 객체를 가르키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할 때 유용하다!
옵셔널 체이닝 연산자는 좌항의 피연산자가 false로 평가되는 Falsy 값(false, undefined, null, 0, -0, NaN, ' ')이라도 null 또는 undefined가 아니면 우항의 프로퍼티 참조를 이어간다.
var str = '';
//문자열 길이를 참조하는데 그 값이 Falsy값이라도
//null이나 undefined가 아니면 프로퍼티 참조를 이어간다.
var length = str?.length;
console.log(length); //0
null병합 연산자 - ??
null 병합 연산자도 옵셔널체이닝 연산자와 마찬가지로 ES11에서 도입되었다. 이 연산자는 좌항의 피연산자가 null 또는 undefined인 경우 우항의 피연산자를 반환하고 그렇지 않으면 좌항의 피연산자를 반환한다.(기본값 설정할 때 유용한다!)
//좌항의 피연산자가 null 또는 undefined면 우항의 피연산자를 반환하고,
//그렇지 않으면 좌항의 피연산자를 반환한다.
var foo = null ?? 'defalut value';
console.log(foo) //"defalut value"
null 병합 연산자는 좌항의 피연산자가 false로 평가되는 Falsy 값 (false, undefined, null, 0, -0, NaN, ' ')이라도 null 또는 undefined가 아니면 좌항의 피연산자를 그대로 반환한다.
//좌항의 피연산자가 Falsy 값이라도 null 또는 undefined가 아니면 좌항의 피연산자를 반환한다.
var foo = '' ?? 'defalut value';
console.log(foo); //""
'자바스크립트' 카테고리의 다른 글
[모던자바스크립트 Deep Dive] 11. 원시값과 객체의 비교 (0) | 2021.10.01 |
---|---|
[모던자바스크립트 Deep Dive] 10. 객체 리터럴 (0) | 2021.09.30 |
[모던자바스크립트 Deep Dive] 9.4 단축평가 (0) | 2021.09.23 |
[모던자바스크립트 Deep Dive] 변수(Variable) (0) | 2021.09.20 |
React를 사용하는 이유??? (0) | 2021.09.05 |