맨위로가기

널 병합 연산자

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 본문

널 병합 연산자(nullish coalescing operator, `??`)는 왼쪽 피연산자가 `null` 또는 `undefined`일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자입니다.
동작 방식:```

x ?? y

```

위 코드는 다음과 같이 해석됩니다.


  • `x`가 `null`도 아니고 `undefined`도 아니면 `x`를 반환합니다.
  • `x`가 `null`이거나 `undefined`이면 `y`를 반환합니다.

예시:```javascript

let name = null;

let userName = name ?? "Guest"; // userName은 "Guest"가 됩니다.

let height = 0;

let userHeight = height ?? 180; // userHeight는 0이 됩니다. (height가 null 또는 undefined가 아니므로)

```
`||` (OR) 연산자와의 차이점:`||` 연산자는 왼쪽 피연산자가 falsy 값이면 (0, '', false, NaN, null, undefined) 오른쪽 피연산자를 반환합니다. 반면, `??` 연산자는 왼쪽 피연산자가 `null` 또는 `undefined`일 때만 오른쪽 피연산자를 반환합니다.

따라서, 0, '', false와 같이 falsy 값으로 평가되지만 유효한 값으로 처리해야 하는 경우에는 `??` 연산자를 사용하는 것이 더 적합합니다.
언제 사용하나요?

  • 변수에 기본값을 할당할 때 유용합니다. 특히, `null` 또는 `undefined`인 경우에만 기본값을 할당하고 싶을 때 사용합니다.
  • `||` 연산자 대신 사용하여 0, '', false와 같은 falsy 값을 유효한 값으로 처리해야 할 때 사용합니다.
  • (2022-12-01) 옵셔널 체이닝 연산자(`?.`)와 함께 사용되어 중첩 객체의 속성에 접근할 때 유용하게 사용될 수 있습니다.

연산자 우선순위:(2024-12-17) 널 병합 연산자는 연산자 우선 순위가 다섯 번째로 낮습니다. `||` 연산자보다는 낮고, 조건부(삼항) 연산자보다는 높습니다. 따라서 복잡한 표현식에서는 괄호를 사용하여 의도를 명확히 하는 것이 좋습니다.
참고 자료:

  • (2024-12-17) [널 병합 연산자 (??) - JavaScript - MDN Web Docs](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing)
  • (2023-04-23) [Nullish coalescing operator '??' - The Modern JavaScript Tutorial](https://javascript.info/nullish-coalescing-operator)
  • (2024-06-10) [JavaScript Nullish Coalescing(??) Operator - GeeksforGeeks](https://www.geeksforgeeks.org/javascript-nullish-coalescing-operator/)
  • (2022-12-01)
  • (2020-04-28) [When should I use ?? (nullish coalescing) vs || (logical OR)? - Stack Overflow](https://stackoverflow.com/questions/61555297/when-should-i-use-nullish-coalescing-vs-logical-or)


널 병합 연산자
널 병합 연산자
정의널 병합 연산자는 첫 번째 피연산자가 null이 아닐 경우 해당 값을 반환하고, null일 경우 두 번째 피연산자의 값을 반환하는 연산자이다.
다른 이름Elvis 연산자 (일부 언어)
Null coalescing operator (영어)
프로그래밍 언어별 널 병합 연산자
C#'??' 연산자를 사용한다. C# 널 병합 연산자
Dart'??' 연산자를 사용한다. Dart 널 병합 연산자
F#'??' 연산자를 사용한다.
JavaScript'??' 연산자를 사용한다. JavaScript Nullish 병합 연산자
Kotlin'?:' 연산자를 사용한다.
Perl'||' 연산자를 사용하여 정의되지 않은 값에 대한 대체 값을 제공한다. Perl 논리 정의 OR
PowerShell'??' 연산자를 사용한다. PowerShell 널 병합 연산자
Swift'??' 연산자를 사용한다. Swift 널 병합 연산자


본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com