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

JavaScript入門 練習問題 58:演算子:論理積演算子による短絡評価

次のコードを実行したときのコンソールへの出力として正しいものはどれですか?

```javascript
const result1 = true && "Yes";
const result2 = false && "No";
console.log(result1, result2);
```

  1. "Yes" と false が出力される
  2. "Yes" と "No" が出力される
  3. true と "No" が出力される
  4. true と false が出力される
  5. "Yes" と true が出力される
正解と解説を見る
正解:"Yes" と false が出力される

次のコードを実行すると、コンソールには「"Yes" と false」が出力されます。

【正解の理由】
論理積演算子(`&&`)は、短絡評価(=左側の値だけで結果が決まる場合、右側の評価を省略する仕組み)を行います。左側の値が truthy(=真と評価される値)の場合、右側の値をそのまま返します。そのため `true && "Yes"` は `"Yes"` になります。一方、左側の値が falsy(=偽と評価される値)の場合は、その左側の値をそのまま返します。そのため `false && "No"` は `false` を返します。

【不正解の理由】
• 「"Yes" と "No" が出力される」という結果は、右側の値が常に返されると勘違いしたものであり誤り
• 「true と "No" が出力される」という結果は、真偽の判定ルールを逆に捉えたものであり誤り
• 「true と false が出力される」という結果は、演算子が常に真偽値(boolean)を返すと勘違いしたものであり誤り
• 「"Yes" と true が出力される」という結果は、falseと評価された場合の戻り値を誤解したものであり誤り

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