Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 20:演算子:論理ORとNullish coalescing演算子の違い

次のコードの実行結果として正しいものはどれですか?

```javascript
const count = 0;
const result1 = count || 10;
const result2 = count ?? 10;
console.log(result1, result2);
```

  1. 10 0
  2. 0 10
  3. 0 0
  4. 10 10
  5. NaN NaN
正解と解説を見る
正解:10 0

論理OR演算子(||)は左辺が「falsyな値」(=falseとみなされる値。0や空文字列、null、undefinedなど)のときに右辺を返しますが、Nullish coalescing演算子(??、=左辺がnullまたはundefinedのときのみ右辺を返す演算子)は0のような値を「値がある」とみなして左辺をそのまま返します。

【正解の理由】countは0であり、0はfalsyな値なので||演算子は右辺の10を返しresult1は10になります。一方、0はnullでもundefinedでもないため??演算子は左辺の0をそのまま返しresult2は0になります。

【不正解の理由】
• 「0 10」:||と??の挙動が逆になっており、実際の演算子の動作と一致しない
• 「0 0」:||演算子が0をfalsyと判定して右辺を返すことが反映されていない
• 「10 10」:??演算子が0を「値がある」として扱い左辺をそのまま返すことが反映されていない
• 「NaN NaN」:||や??は数値の加算や不正な演算を行うものではなく、NaNになる要素がコード中に存在しない

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)