⚡??널병합연산자 (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만 아니면 앞의 값을 반환하는 것을 보장해줍니다.
한달쯤 전에 프로그래머스 풀다가 처음 널 병합 연산자를 알게되었었는데
이제야 뭔지 대충 알겠네요..
반응형
'javascript' 카테고리의 다른 글
자바스크립트 실행 컨텍스트 (execution context) 란? (2) (1) | 2022.12.25 |
---|---|
자바스크립트 실행컨텍스트 (execution context) 란? (1) | 2022.12.25 |
유사 배열이 대체 뭐임? Immutability는 뭐임? (0) | 2022.12.20 |
자바스크립트의 프로미스 (1) | 2022.12.20 |
자바스크립트 JS Map()자료구조 정리! (1) | 2022.11.15 |