"3" + 5 の型変換
📝 問題の再掲
Q6: "3" + 5 の結果はどれ?
選択肢: 8 / "35"(正答) / エラー / NaN
⚠️ よくある間違い
「3 + 5 = 8 でしょ?」と思いがちですが、"3" は文字列です。+ 演算子は片方が文字列だと文字列連結になります。
📖 段階的な説明
ステップ1:+ 演算子の2つの意味
- 数値 + 数値 → 足し算(3 + 5 = 8)
- 文字列 + 何か → 文字列連結("3" + 5 = "35")
ステップ2:他の演算子は違う
- * / は数値演算しかないので、文字列を自動で数値に変換します。
"3" + 5 → "35"(文字列連結)
"3" - 1 → 2(数値演算)
"3" * 2 → 6(数値演算)
"3" / 1 → 3(数値演算)
ステップ3:明示的に変換する方法
文字列を数値にしたいときは Number() を使います。
💻 コード例
// 暗黙的型変換の例
console.log("3" + 5); // "35"(文字列連結)
console.log("3" - 1); // 2(数値演算)
console.log("abc" - 1); // NaN(数値に変換できない)
// 明示的に変換
const input = "42";
console.log(Number(input) + 8); // 50(正しく足し算)
// prompt() の戻り値は常に文字列!
const age = prompt("年齢は?"); // "15"(文字列)
console.log(age + 1); // "151"(文字列連結!)
console.log(Number(age) + 1); // 16(正しい)
🔗 関連知識
prompt()の戻り値は常に文字列なので、計算に使うときは必ずNumber()で変換しましょうparseInt()は整数に、parseFloat()は小数に変換します
✅ 確認問題
Q: "10" - "3" + "2" の結果は?
答えを見る
"72"。まず "10" - "3" = 7(数値演算)、次に 7 + "2" = "72"(文字列連結)。左から順に評価されます。