[JavaScript] Nullish

Hyunji·2022년 5월 12일
0

공부

목록 보기
26/35
post-thumbnail

공부하다가 Nullish 라는 병합 연산자를 발견해서 작성한다

nullish 란?

  • 병합연산자 (nullish coalescing operator)
  • ?? 로 표기함
  • 짧은 문법으로 여러 피연산자 중 그 값이 확정되어있는 변수 를 찾을 수 있다

a ?? b 의 결과는?

  • anull 도 아니고 undefined 도 아니라면 a
  • 그 외의 경우는 b

nullish 병합연산자를 사용하지 않고 동일한 동작을 하는 코드를 작성하려면 아래와 같다

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

?? 와 || 의 차이

nulish 병합연산자는 OR 연산자와 유사해 보이지만 두 연산자 사이에는 중요한 차이점이 있다

  • || 는 첫 번째 truthy 값을 반환한다
  • ?? 는 첫 번째 defined 된 값을 반환한다

따라서 nullundefined, 숫자 0 을 구분 지어 다뤄야 할 때 이 차이점은 매우 중요한 역할을 한다

연산자 우선순위

?? 의 연산자 우선순위는 5 이다
따라서 ??=? 보다는 먼저, 대부분의 연산자보다는 나중에 평가가 된다

=> 복잡한 표현식 안에서 ?? 를 사용해 값을 하나 선택할 때에는 괄호를 추가하는게 좋다

또한 안정성 관련 이슈 때문에 ??&&||와 함께 사용하지 못한다.


https://ko.javascript.info/nullish-coalescing-operator

profile
성장중인 개발자

0개의 댓글