NOTION 정리/Javascript

?? (null 병합 연산자)

dev_sr 2023. 11. 3. 16:11

?? 은 null 병합 연산자라고 함

피연산자 중 확정되어 있는 변수(null도 아니고 undefined도 아닌)를 찾을 수 있다

// 이 if문은
if(a ?? b)

//이 문장과 같다
(a !== null && a !== undefined) ? a : b

 

a가 null이 아니고 undefined 가 아니면 a, 아니면 b

 

 

&& , || 연산자와의 차이

&& 는 첫번째 false 인 값을 반환 (false 가 없으면 마지막 값)

|| 는 첫번째 true 인 값을 반환 (true 가 없으면 마지막 값)

?? 는 첫번째 정의된 값을 반환

console.log(0 && 10); // 0
console.log(0 || 10); // 10
console.log(0 ?? 10); // 0

 

 

 

대다수의 연산자보다 우선순위가 낮기 때문에 ??는 괄호와 쓰는 게 좋다

||, && 와 함께 사용하지는 못하지만 괄호와 쓰면 가능

console.log( ( 1&&2 ) ?? 3 ); //2

 

 

 

참고

https://velog.io/@seize/JavaScript-null-%EB%B3%91%ED%95%A9-%EC%97%B0%EC%82%B0%EC%9E%90

 

[JavaScript] - null 병합 연산자 '??'

null 병합 연산자(nullish coalescing operator) ??를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 '확정되어 있는' 변수를 찾을 수 있다. a ?? b의 평가 결과는 다음과 같다. a가 null도 아니고 undefined도

velog.io