Open5
演算子
truthy, falsy について
// * = "ABC" 0 10 undefined null false NaN "" []{}
const val = *;
if (val) {
console.log('valはtruthyです'); // "ABC" 10 [] {}
} else {
console.log('valはfalsyです'); //0 undefined null false NaN ""
}
false | falseキーワード |
---|---|
0 | 数値ゼロ |
-0 | 数値マイナスゼロ |
0n | BigInt で、論理値として使用された場合、 Number と同じ規則に従う |
"" | 空文字列の値 |
null | 何も値が存在しないこと |
undefind | プリミティブ値 |
NaN | 非数 |
一般的な条件式(比較演算子)
const flg1 = true;
const flg2 = false;
if (flg1 || flg2) {
console.log('1か2は true になります'); //1か2は true になります
}
if (flg1 && flg2) {
console.log('1も2も true になります'); //表示されない
}
論理演算子
// || は左側が truthy の時その時点で返却する
const num = 100;
const fee = num || '金額は未設定です';
console.log(fee); //100
// && は左側 falsy の時のその時点で返却する
const num2 = undefined;
const fee2 = num2 && '何か設定されました';
console.log(fee2); //undefined
null合体演算子 (ES2020で導入された)
左の値が null または undefind の時、次の右の処理がよばれる
let toyA;
const toyB = toyA ?? 'doll';
const toyC = toyA || 'doll';
console.log(toyB); // doll
console.log(toyC); // doll
const count = 0 ?? 1;
const count2 = 0 || 1;
console.log(count); // 0
console.log(count2); // 1
const noNameMan = '';
const friendName = noNameMan ?? 'Sakuragi'; // ""
const friendName2 = noNameMan || 'Sakuragi'; // Sakuragi
console.log(friendName);
console.log(friendName2);
参考