on
모던 자바스크립트 2.12 null 병합 연산자'??'
모던 자바스크립트 2.12 null 병합 연산자'??'
null 병합 연산자 ??를 사용하면 여러 비연산자 중 그 값이 '확정되어있는'변수를 찾을 수 있음
a ?? b
- a가 null도 아니고 undefined도 아니면 a
- 그 외의 경우 b
x = a ?? b //와 같은 코드 x = (a !== null && a !== undefined) ? a : b;
//세 변수 중 실제 값이 있는 변수의 값을 출력하는데, 세 변수 모두 값이 없다면 '익명의 사용자’가 출력 let firstName = null; let lastName = null; let nickName = "바이올렛"; // null이나 undefined가 아닌 첫 번째 피연산자 alert(firstName ?? lastName ?? nickName ?? "익명의 사용자"); // 바이올렛
'??'와 '||'의 차이
||는 첫 번째 truthy 값을 반환합니다.
truthy 값을 반환합니다. ??는 첫 번째 정의된(defined) 값을 반환합니다.
null과 undefined, 숫자 0을 구분 지어 다뤄야 할 때 이 차이점은 매우 중요한 역할
let height = 0; alert(height || 100); // 100 alert(height ?? 100); // 0
'??' 연산자의 우선순위
??는 =와 ? 보다는 먼저, 대부분의 연산자보다는 나중에 평가
let height = null; let width = null; // 괄호를 추가! let area = (height ?? 100) * (width ?? 50); alert(area); // 5000
from http://jjuunnjuning.tistory.com/78 by ccl(A) rewrite - 2021-11-04 04:02:00