모던 javascript 튜토리얼

nullish 병합 연산자 '??'

crab. 2022. 6. 7. 08:46
  • nullish 병합 연산자(nullish coalescing operator) ??를 사용하면 짧은 문법으로 여러 피연산자 중 그 값이 ‘확정되어있는’ 변수를 찾을 수 있습니다.
  • a ?? b의 평가 결과는 다음과 같습니다.
    • a가 null도 아니고 undefined도 아니면 a
    • 그 외의 경우는 b
  • nullish 병합 연산자 ??없이 x = a ?? b와 동일한 동작을 하는 코드를 작성하면 다음과 같습니다.
x = (a !== null && a !== undefined) ? a : b;
let firstName = null;
let lastName = null;
let nickName = "바이올렛";

// null이나 undefined가 아닌 첫 번째 피연산자
alert(firstName ?? lastName ?? nickName ?? "익명의 사용자"); // 바이올렛

?? 과 || 의 차이

두 연산자 사이에는 중요한 차이점이 있습니다.

  • ||는 첫 번째 truthy 값을 반환합니다.
  • ??는 첫 번째 정의된(defined) 값을 반환합니다.
let height = 0;

alert(height || 100); // 100
alert(height ?? 100); // 0

연산자 우선순위

  • ??의 연산자 우선순위는 5로 꽤 낮습니다.
  • 따라서 ??는 =와 ? 보다는 먼저, 대부분의 연산자보다는 나중에 평가됩니다.
  • 그렇기 때문에 복잡한 표현식 안에서 ??를 사용해 값을 하나 선택할 땐 괄호를 추가하는 게 좋습니다.

'모던 javascript 튜토리얼' 카테고리의 다른 글

switch문  (0) 2022.06.09
while과 for 반복문  (0) 2022.06.08
논리 연산자  (0) 2022.06.06
if와 '?'를 사용한 조건 처리  (0) 2022.06.05
비교 연산자  (0) 2022.06.03