udy JavaScript 0416-1 hr nollish演算子
5315 ワード
'??' (nullish連結演算子)
a ?? b:a nullでもundefinedでもない、a、その他の場合b
“?”同じコードで表すと、以下のようになります.
x = (a !== null && a !== undefined) ? a : b;
'??'最初の「定義された値」を返します.
「||」は、最初の「true」値を返します.
この違いはnullとundefinedと0を区別しなければならない場合に重要な役割を果たす.
height = height ?? 100; // height에 값이 정의되지 않은 경우 100이 할당됨
let height = 0;
alert(height || 100); // 100, 0은 false취급을 받았기 때문에 100이 출력
alert(height ?? 100); // 0, 0이라는 값이 있기에 height값인 0이 출력
?? の演算子の優先度は5=わあ?ほとんどの演算子ではなく、まず評価し、次に評価します.
したがって、使用時には()を追加することが望ましい.
★余分な安定性のため??&、|と一緒に使用できません.
let height = null;
let width = null;
// 1. 괄호를 추가해서 사용한다
let area = (height ?? 100) * (width ?? 50);
alert(area); // 5000
// 2. ()를 사용하지 않은 원치 않는 결과
let area2 = height ?? (100 * width) ?? 50;
alert(area); // 0
// 3. &&와 ||를 함께 사용하지 못함
let x = 1 && 2 ?? 3; // SyntaxError: Unexpected token '??'
let x2 = (1 && 2) ?? 3; // 제대로 동작한다.
alert(x2); // 2
Reference
この問題について(udy JavaScript 0416-1 hr nollish演算子), 我々は、より多くの情報をここで見つけました https://velog.io/@toffg6450/Study-JavaScript-0415-1hr-g40iz03dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol