JavaScript入門 練習問題 62:データ型:文字列と数値の暗黙的型変換
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const a = "5" + 2;
const b = "5" - 2;
console.log(a);
console.log(b);
```
- 1行目に 52、2行目に 3
- 1行目に 7、2行目に 3
- 1行目に "52"、2行目に "3"
- 1行目に 7、2行目に "3"
- 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)にはならない