javascript

널리쉬 병합 연산자 '??' (Nullish coalescing operator) Javascript

냠냠맨 2022. 12. 15. 20:05

⚡??널병합연산자 (Nullish coalescing ) 란?

 

주로 || 연산자의 대용으로 사용 됩니다.

||연산자의 작동은?
falsy 값일시 뒤로 넘어감 (falsy값 : 0, "", false , NaN, null , undefined) 

 

그런데 우리가 만약 0은 그냥 표기를 하고 싶다고 가정했을때

||연산자를 이용하게 되면 0은 falsy값이기 때문에 뒤로 넘어가버리는 문제가 있습니다.

그런 상태에서 null과 undefined만 따로 구분해서 사용하기 위해

널병합연산자를 사용합니다.

 


 

 

🔍Nullish 병합 연산자 '??'의 동작

 // nullish 병합 연산자로 작성시
 x = a ?? b 

// nullish 병합 연산자 없이 if문을 통해 작성
 x = (a !== null && a !== undefined) ? a : b;

 

아주 간단하게 생각하면 

 

nullish 병합 연산자의 앞에 있는 값이 null도 아니고 undefined도 아니라면?

앞에 있는 값을 반환

 

만약 null,undefined 둘 중 하나 인경우에는

뒤의 값을 반환

 

 


 

🔍 ||연산자와의 비교

let a = 0;
let b = a||3

console.log(b); // 3


let c = 0
let d = c??3
console.log(d); // 0

let e = null;
let f = e ?? 3;
console.log(f); // 3

let g = undefined;
let h = g ?? 3;
console.log(h); // 3

||연산자를 이용했을때

0과 3을 비교하면 3이 출력되지만

??연산자는 null,undefined만 아니면 앞의 값을 반환하는 것을 보장해줍니다.

 

한달쯤 전에 프로그래머스 풀다가 처음 널 병합 연산자를 알게되었었는데

이제야 뭔지 대충 알겠네요..

반응형