Skip to content

Latest commit

 

History

History
51 lines (35 loc) · 2.1 KB

js_nullish_operator.md

File metadata and controls

51 lines (35 loc) · 2.1 KB

javascript - ?? 연산자 (a.k.a 널병합 연산자)

날짜: 2024-07-12

목록으로


JS에서 ?? 연산자는 "널 병합 연산자(Nullish Coalescing Operator)"라고 불립니다. 이 연산자는 ES2020에서 도입되었습니다.

?? 연산자의 기능:

  • 왼쪽 피연산자가 null 또는 undefined일 때만 오른쪽 피연산자를 반환합니다.
  • 그 외의 경우(falsy 값 포함)에는 왼쪽 피연산자를 반환합니다.

|| 연산자와의 비교:

  1. 기능:

    • ||: 왼쪽 피연산자가 falsy(false, 0, '', null, undefined, NaN)일 때 오른쪽 피연산자를 반환합니다.
    • ??: 왼쪽 피연산자가 null 또는 undefined일 때만 오른쪽 피연산자를 반환합니다.
  2. 사용 예:

    console.log(0 ?? 42);    // 0
    console.log(0 || 42);    // 42
    console.log('' ?? 42);   // ''
    console.log('' || 42);   // 42
    console.log(null ?? 42); // 42
    console.log(null || 42); // 42

장단점:

?? 연산자의 장점:

  • 0이나 빈 문자열('')과 같은 유효한 falsy 값을 그대로 사용하고 싶을 때 유용합니다.
  • 의도를 더 명확하게 표현할 수 있습니다. "이 값이 없으면(null 또는 undefined) 이 기본값을 사용하라"는 의미를 정확히 전달합니다.

?? 연산자의 단점:

  • 비교적 최근에 도입된 기능이라 오래된 브라우저에서는 지원되지 않을 수 있습니다.

|| 연산자의 장점:

  • 폭넓게 지원되어 호환성이 좋습니다.
  • falsy 값을 모두 처리하고 싶을 때 유용합니다.

|| 연산자의 단점:

  • 0이나 ''와 같은 falsy 값도 기본값으로 대체되어 버립니다. 이는 때때로 의도치 않은 결과를 초래할 수 있습니다.

결론적으로, 정확히 null이나 undefined만을 처리하고 싶다면 ??를, 모든 falsy 값을 처리하고 싶다면 ||를 사용하는 것이 적절합니다. 상황에 따라 적절한 연산자를 선택하는 것이 중요합니다.


목록으로