본문 바로가기
JavaScript

[JavaScript/자바스크립트]null 병합 연산자

by hans-j 2022. 12. 30.

?? 

단축평가와 옵셔널체이닝을 모두 거치니 이 null 병합 연산자는 정말 순한 양처럼 보이는 심플한 녀석이다.

ES11에서 도입된 null 병합 (nullish coalescing)연산자  ??

좌항의 피연산자가 null 또는 undefined인 경우 우항를 반환하고,

그렇지 않으면 좌항의 피연산자를  반환한다.

좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고,

그렇지 않으면 우항의 프로퍼티 참조를 이어가는 옵셔널체이닝 연산자랑 헷갈리지 않기!!


null 병합 (nullish coalescing)연산자 가 도입되기 이전에는

논리 연산자 ||를 사용한 단축 평가를 통해 변수에 기본값을 설정했다.


변수가 null또는 undefined인지 확인하는것에 유용한 옵셔널 체이닝 연산자랑 헷갈리지 않기!!


논리 연산자 ||는 좌항의 피연산자가 false로 평가되는 Fasly값(false, undefined, null, 0, -0, NaN, ' ')이면

우항의 피연산자를 반환한다.

하지만 Falsy값인 0이나 ' '도 기본값로 유효하다면 예기치 않은 동작이 발생할 수 있다.

var foo = '' || 'default string';
console.log(foo);

null 병합 연산자 ?? 는 좌항의 피연산자가 false로 평가되는 Fasly값(false, undefined, null, 0, -0, NaN, ' ')이어도!!!

null 또는 undefined이 아니면 좌항의 피연산자를 그대로 반환한다.

var poo = '' ?? 'default string';
console.log(poo);


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

 

Nullish coalescing operator (??) - JavaScript | MDN

The nullish coalescing (??) operator is a logical operator that returns its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.

developer.mozilla.org


**모던 자바스크립트 deep dive (이응모 선생님) 를 읽고 참고하여 작성하는 글입니다 **