일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javscript
- form
- JavaScript
- frontend
- Component
- heroku
- Mongoose
- NextJs
- 자바스크립트
- GRID
- API
- TypeScript
- express
- ES6
- HTML
- nodejs
- Session
- CLONE
- ECMAScript
- CSS
- react
- clonecoding
- Flutter
- pug
- backend
- MongoDB
- node.js
- DART
- 리액트
- graphQL
- Today
- Total
Enjoy Programming
[ES]?? Operator: Nullish coalescing operator 본문
새로운 연산자인 ??에 대해 다뤄보자.
이름하야
Nullish coalescing operator
뭔뜻인고 하니 null 병합연산자란다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
mdn을 살펴보면
널 병합연산자는 왼쪽 피연산자가 null 또는 undefined일때 오른쪽 피연산자를 반환하고~ 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다~
OR연산자와 다른점은 falsy값에도 해당되는지 아닌지이다. 연산자의 우선순위가 ||(or)연산자의 바로 아래이며 삼항연산자의 바로위이다.
기본적으로 or연산자는 변수에 기본값을 줄때 유용하다.
예를 들어 값이 할당되지 않은 name이라는 변수가 있고 이를 출력하면 기본적으로 undefined가 나온다.
||를 써서 name이 false이면 lee를 출력하도록 해주면 default로 사용해서 출력해 줄 수 있다.
문제는 || 연산자는 true와 false만 판단할 수 있다. name에 값이있어 true라면 name값을 출력하고 false면 오른쪽 피연산자를 반환한다.
만약 name에 0을 넣어준다면? 그리고 내가 출력하고싶은 것은 0이라면? 0을 넣어도 오른쪽 피연산자 값이 나오게 된다.
0은 프로그래밍 상 false로 판단되어 false로 인식해 오른쪽값이 나오게 되는 것이다.
이러한 점을 보완하기 위해 ?? 연산자가 나왔는데 ||대신에 ?? 써보면~
0이 제대로 출력됨을 볼 수 있다. 이는 ?? 연산자는 왼쪽피연산자가 null이거나 undefined일때만 왼쪽피연산자를 반환한다.
빈문자열도 마찬가지이다.
그렇다고 ??연산자가 ||보다 더 나은 연산자라고 생각하진 말자. 왜냐 각자의 역할이 있기때문에 유용한곳에 알아서 각각 사용해주면 된다.
'JavaScript > Vanilla Js' 카테고리의 다른 글
[ES] padStart and padEnd (0) | 2021.07.07 |
---|---|
[ES] optional chaining (0) | 2021.07.07 |
[ES6] Proxy (0) | 2021.07.06 |
[ES6] generator (0) | 2021.07.06 |
[ES6] MAP && Weak Map (0) | 2021.07.06 |