본문 바로가기

자바스크립트

[javascript] ?? : null 병합 연산자 [ES2020]

반응형

?? 연산자(null 병합연산자)


널 병합 연산자(??)는  || 연산자를 대신하여 주로 사용된다. 이 연산자를 사용하면, falsy 값(0, '', false, NaN, null, undefined) 중에서도 null과 undefined만 따로 구분하여 조건문을 처리한다.

 

즉, null 혹은 undefined 만 falsy 값으로 판단하므로, 0, false, NaN,'' 은 일반적은 숫자형이나 문자열로서 판단내린다. 

 

// || 연산자는 falsy 값이면 모두 거짓으 보고 넘어 본다.
// ?? 연산자는 null과 undefined 만 falsy 값으로 본다.
const a = 0;
const b = a || 5; // a 는 falsy 값인 0 이므로, falsy가 아닌 3을 출력한다. 
console.log(b); // 출력결과) 5

const c = 0;
const d = c ?? 3; // ?? 연산자는 null과 undefined일 때만 뒤로 넘어가고
console.log(d); //  출력결과)  0;  //그 외 falsy 값은 모두 맞는 것으로 판단한다.

const e = null;  
const f = e ?? 5;  //null 이므로 뒤로 넘어간다.
console.log(f); //  출력결과)  5;

const g = undefined;
const h = g ?? 6;  //undefined 이므로 뒤로 넘어간다. 
console.log(h); //  출력결과) 6;
반응형