모던 자바스크립트 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