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

JavaScript入門 練習問題 62:データ型:文字列と数値の暗黙的型変換

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

```javascript
const a = "5" + 2;
const b = "5" - 2;
console.log(a);
console.log(b);
```

  1. 1行目に 52、2行目に 3
  2. 1行目に 7、2行目に 3
  3. 1行目に "52"、2行目に "3"
  4. 1行目に 7、2行目に "3"
  5. 1行目に NaN、2行目に NaN
正解と解説を見る
正解:1行目に 52、2行目に 3

「+」演算子は文字列が絡むと連結され、「-」演算子は数値を計算しようとするため、1行目は「52」、2行目は3になります。

【正解の理由】
JavaScriptでは、`+`演算子の片方が文字列の場合、もう片方も文字列に変換されて連結されます。そのため `"5" + 2` は `"52"` になります。一方、`-`演算子は数学的な引き算しか意味を持たないため、文字列の `"5"` は数値の `5` に自動変換され、`5 - 2` の結果として `3` になります。

【不正解の理由】
• 『1行目に 7、2行目に 3』という説明は誤り。`+`演算子は文字列の連結が優先されるため、7にはならない
• 『1行目に "52"、2行目に "3"』という説明は誤り。`-`演算子の結果は文字列ではなく数値の3になる
• 『1行目に 7、2行目に "3"』という説明は誤り。どちらの演算結果の型も間違っている
• 『1行目に NaN、2行目に NaN』という説明は誤り。数値に変換可能な文字列は正しく計算や連結が行われるため、非数(NaN)にはならない

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