널 병합 연산자
"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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