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만 아니면 앞의 값을 반환하는 것을 보장해줍니다.
한달쯤 전에 프로그래머스 풀다가 처음 널 병합 연산자를 알게되었었는데
이제야 뭔지 대충 알겠네요..
반응형