본문 바로가기
javaScript/JS Tutorial

[javaScript]Nullish 병합 연산자 ??

by mooyou 2022. 12. 1.
728x90
300x250

?? 병합 연산자는 왼쪽 피연산자가 null이나 undefined일 경우 오른쪽 피 연산자를 반환한다.

null이나 undefined이 아닐 경우에는 왼쪽 피 연산자를 리턴한다.

?? 연산자를 사용하면 아래와 같이 간단하게 표현할 수 있다.

x = a ?? b

만약 ??연산자를 사용하지 않는다면

아래와 같이 길어진다.

x = (a !== null && a !== undefined) ? a : b;

 

let name = null;
let text = "missing";
let result = name ?? text;

왼쪽에 name이 null이기 때문에 오른쪽 missing이 호출 된다.

 

or(||) 연산자와 차이점

const count = 0;
const text = "";

const qty = count || 42;
const message = text || "hi!";
console.log(qty); // 42
console.log(message); // "hi!"
or 연산자는 왼쪽 피연산자가 null, undefined뿐만 아니라 거짓 값(0, '', NaN, false 등)일 경우 에도 오른쪽 피연산자를 반환한다.

 

?? 연산자는 && or || 연산자와 직접적으로 같이 사용할 수 없다.

null || undefined ?? "foo"; // raises a SyntaxError
true || undefined ?? "foo"; // raises a SyntaxError

같이 사용할 경우 구문 오류가 발생한다.

 

대신 괄호를 묶어서 명시적 우선 순위를 나타낼수 있다.

(null || undefined) ?? "foo"; // returns "foo"

 

 

2020년 3월부터 모든 브라우저에서 지원된다.

 

 

 

 

 

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

https://www.w3schools.com/js/js_comparisons.asp

 

 

 

 

728x90
반응형

댓글