Frontend/JavaScript

[js] ?? 라는 연산자도 있었네: nullish

양원준 2024. 4. 12. 19:08
728x90

 

?? 라는 연산자가 있었다! (마주친적이 거의 없어서 몰랐던..)

??는 병합연산자, nulllish 라고 불리우고 여러 피연산자 중에서 확정되어 있는 변수를 찾을 수 있다

 

a ?? b

 

다음과 같이 있을 때 a가 null도 아니고 undefined도 아니면 a, 그 외의 경우는 b이다

 

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

 

삼항연산자로 표현하자면 위 코드와 같은 뜻이다

 

 

 

?? 과 || 의 차이

스쳐가듯 보면 or 연산자와 굉장히 유사해보인다. 그러나 이 둘은 다른 연산자다

 

  • ||는 첫번째 truthy 값을 반환
  • ??는 첫번째 정의된 값을 반환
let a = 0;

console.log(a || 100); // a는 falsy로 판단되어 100
console.log(a ?? 100); // a는 null이나 undefined 아니여서 0

 

 

 

 

 

추가로,

  • ?? 는 우선순위가 낮은편이므로 괄호랑 같이 쓰는것이 좋을듯싶다
  • 안정성 이슈 때문에 || 와 &&랑 같이 사용하지 못한다

 

 

 

 

 

728x90