Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- JavaScript
- Kubernetes
- prometheus
- transit gateway
- optional chaining
- VPC
- grafana
- 비구조화 할당
- null 병합 연산자
- elasticsearch
- Service
- 옵셔널 체이닝
- On-Premise
- 단축 평가
- Custom Resource
- docker
- Endpoints
- cognito
- 구조분해 할당
- vgw
- 자바스크립트
- AWS
- DynamoDB
- docker swarm
- Site-to-Site VPN
- Await
- CloudFormation
- 온프레미스
- api gateway
- Proxy Resource
Archives
- Today
- Total
만자의 개발일지
[JavaScript] null 병합 연산자 본문
null 병합 연산자(Nullish Coalescing Operator)
null 병합 연산자(??)는 왼쪽 값이 null 혹은 undefined 인경우 오른쪽 값을 반환하는 연산자입니다.
언뜻 보면 OR 연산자의 단축 평가와 매우 유사하지만 두 연산자에는 중요한 차이점이 있습니다.
우선 왼쪽값이 null 혹은 undefined의 경우 OR 연산자와 똑같이 동작합니다.
console.log(null || 100)
console.log(null ?? 100)
console.log(undefined || 200)
console.log(undefined ?? 200)
100
100
200
200
하지만 null과 undefined를 제외한 false로 평가되는 모든 값의 경우 OR 연산자는 오른쪽 값을 반환하지만
null 병합 연산자의 경우 왼쪽값을 반환하게 됩니다.
console.log(0 || 100)
console.log(0 ?? 100)
console.log(false || 200)
console.log(false ?? 200)
console.log("" || 200)
console.log("" ?? 200) // 빈 문자열이라 출력 결과가 없음
100
0
200
false
200
따라서 null 과 undefined만 체크하고 싶은 경우 null 병합 연산자를 사용하면되고
false로 평가되는 모든값을 체크하고 싶은 경우 OR 연산자를 사용하면 될 것 같습니다.
단축 평가에 대해 궁금하신 분은 아래 글을 참고하시면 도움이 됩니다.
https://yoo11052.tistory.com/166
[JavaScript] 논리 연산자(&&, ||)를 사용한 단축 평가
OR 연산자가 둘중 하나의 조건만 참일 경우 참을 반환한다는것도 알고, AND 연산자는 두 조건 모두 참일 경우 참을 반환한다는 것도 아는데, 이게 왜 이렇게 동작하는지에 대해 고민한적이 없었습
yoo11052.tistory.com
참고
'JavaScript' 카테고리의 다른 글
[JavaScript] 비구조화(구조분해) 할당 (0) | 2022.05.10 |
---|---|
[JavaScript] 옵셔널 체이닝 (2) | 2022.04.20 |
[JavaScript] 논리 연산자(&&, ||)와 단축 평가 (0) | 2022.04.14 |
[JavaScript] async와 await (0) | 2022.04.12 |
[JavaScript] JavaScript로 banana 출력하는법 (2) | 2022.03.22 |
Comments