aotoyae

[JS] null 병합 연산자 '??' 본문

JavaScript

[JS] null 병합 연산자 '??'

aotoyae 2024. 1. 8. 21:09

 

 

💡 ES11(ECMAScript2020)에서 도입된 null 병합 연산자
: 좌항의 피연산자null 또는 undefined 인 경우 우항의 피연산자를 반환,
좌항이 null 또는 undefined 가 아니라면 좌항의 피연산자를 반환

 

let left = null;
let right = "default string";

let result = left ?? right;
console.log(result); // "default string"

 

 

null 병합 연산자는 변수에 기본값을 설정할 때 유용!

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

 

or 연산자를 사용한 단축 평가의 경우 좌항의 피연산자가 false 로 평가되는

Falsy 값 - false, undefined, null 0, -0, NaN, ' ' 이라면 우항의 피연산자를 반환한다.

 

만약 Falsy 값인 0 이나 ' ' 도 기본값으로서 유효하다면 예상치 못한 동작이 발생할 수 있다.

let left = "";
let right = "default string";

let result = left || right;
console.log(result); // "default string"

 

❗️ 하지만 null 병합 연산자는 좌항의 피연산자가 Falsy 값이라도
null 또는 undefined 가 아니라면 좌항의 피연산자를 그대로 반환한다!

let left = "";
let right = "default string";

let result = left || right;
console.log(result); // ""