JavaScript入門 練習問題 58:演算子:論理積演算子による短絡評価
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const result1 = true && "Yes";
const result2 = false && "No";
console.log(result1, result2);
```
- "Yes" と false が出力される
- "Yes" と "No" が出力される
- true と "No" が出力される
- true と false が出力される
- "Yes" と true が出力される
正解と解説を見る
正解:"Yes" と false が出力される
次のコードを実行すると、コンソールには「"Yes" と false」が出力されます。
【正解の理由】
論理積演算子(`&&`)は、短絡評価(=左側の値だけで結果が決まる場合、右側の評価を省略する仕組み)を行います。左側の値が truthy(=真と評価される値)の場合、右側の値をそのまま返します。そのため `true && "Yes"` は `"Yes"` になります。一方、左側の値が falsy(=偽と評価される値)の場合は、その左側の値をそのまま返します。そのため `false && "No"` は `false` を返します。
【不正解の理由】
• 「"Yes" と "No" が出力される」という結果は、右側の値が常に返されると勘違いしたものであり誤り
• 「true と "No" が出力される」という結果は、真偽の判定ルールを逆に捉えたものであり誤り
• 「true と false が出力される」という結果は、演算子が常に真偽値(boolean)を返すと勘違いしたものであり誤り
• 「"Yes" と true が出力される」という結果は、falseと評価された場合の戻り値を誤解したものであり誤り