공부하다가 Nullish 라는 병합 연산자를 발견해서 작성한다
??
로 표기함a ?? b
의 결과는?
a
가 null
도 아니고 undefined
도 아니라면 a
b
nullish 병합연산자를 사용하지 않고 동일한 동작을 하는 코드를 작성하려면 아래와 같다
x = (a !== null && a !== undefined) ? a : b;
nulish 병합연산자는 OR 연산자와 유사해 보이지만 두 연산자 사이에는 중요한 차이점이 있다
||
는 첫 번째 truthy 값을 반환한다??
는 첫 번째 defined 된 값을 반환한다따라서 null
과 undefined
, 숫자 0
을 구분 지어 다뤄야 할 때 이 차이점은 매우 중요한 역할을 한다
??
의 연산자 우선순위는5
이다
따라서??
는=
와?
보다는 먼저, 대부분의 연산자보다는 나중에 평가가 된다
=> 복잡한 표현식 안에서 ??
를 사용해 값을 하나 선택할 때에는 괄호를 추가하는게 좋다
또한 안정성 관련 이슈 때문에 ??
는 &&
나 ||
와 함께 사용하지 못한다.