nullish 병합 연산자

qoqo_mi·2023년 4월 8일
0

TIL

목록 보기
5/8

nullish 병합 연산자 ??

a ?? b 의 결과는 다음과 같다.

  • a가 null도 아니고 undefined도 아니면 a
  • 그 외의 경우는 b

nullish 병합 연산자 ?? 없이 x = a ?? b 와 동일한 동작을 하는 코드를 작성하는 아래와 같다.

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

nullish 병합 연산자 ??를 사용하면 피연산자 중 값이 할당된 변수를 빠르게 찾을 수 있다.

// height가 null이나 undefined인 경우, 100을 할당
name = name ?? "타잔";

💡 nullish와 or의 차이

  • || 는 첫번째 truthy값을 반환

  • ?? 는 첫번째 정의된(defined) 값을 반환


??|| 을 비교해 보면 아래와 같다.

let width = 0
console.log(name || 100) // 100
console.log(name ?? 100) // 0

height || 100 은 height에 0을 할당했지만 0을 falsy 한 값으로 취급했기 때문에 null이나 undefined를 할당한 것과 동일하게 처리한다.

반면 height ?? 100의 평가 결과는 height가 정확하게 null이나 undefined일 경우에만 100이 된다.

이런 특징 때문에 높이처럼 0이 할당될 수 있는 변수를 사용해 기능을 개발할 땐 ||보다 ??가 적합하다.

📚 ref

0개의 댓글