Open5

演算子

NabeckNabeck

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 非数
NabeckNabeck

一般的な条件式(比較演算子)

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 になります'); //表示されない
}

NabeckNabeck

論理演算子

// || は左側が truthy の時その時点で返却する
const num = 100;
const fee = num || '金額は未設定です';
console.log(fee); //100

//  && は左側 falsy の時のその時点で返却する
const num2 = undefined;
const fee2 = num2 && '何か設定されました';
console.log(fee2); //undefined
NabeckNabeck

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);