JavaScriptの型変換とは?自動変換と明示的変換の仕組みを解説
JavaScriptは動的型付け言語であり、変数の型が自動的に変わることがあります。
これを「型変換(Type Conversion)」と呼び、JavaScriptでは非常に重要な概念の一つです。
この記事では、型変換の仕組みと、よく使われる変換方法についてわかりやすく解説します。
型変換とは?
型変換とは、あるデータ型から別のデータ型に変換することを指します。
JavaScriptでは、次の2種類の型変換があります。
暗黙的な型変換(自動)
JavaScriptは演算の際に、必要に応じて自動的に型を変換します。
let result = "5" + 2;
console.log(result); // "52"(数値2が文字列に変換されて連結)
let result2 = "5" * 2;
console.log(result2); // 10(文字列"5"が数値に変換されて計算)
このように、文脈に応じて型が自動で変わるため、意図しない動作が起こることもあります。
明示的な型変換(手動)
プログラマーが自ら型を変換することを「明示的な型変換」といいます。
文字列に変換
let num = 123;
let str = String(num);
console.log(str); // "123"
数値に変換
let str = "456";
let num = Number(str);
console.log(num); // 456
真偽値に変換
Boolean("") // false
Boolean("hello") // true
Boolean(0) // false
Boolean(1) // true
Boolean()
を使えば、値を true / false に変換できます。
よくある変換関数
String()
:任意の値を文字列に変換
Number()
:文字列や真偽値を数値に変換
Boolean()
:値を真偽値に変換
parseInt()
:文字列を整数に変換
parseFloat()
:文字列を小数に変換
Falsy(偽)とTruthy(真)
JavaScriptでは、条件分岐の中で自動的にBoolean型へ変換されることがあります。
以下の値は「偽(false)」と判定されます。
false
0
""(空文字)
null
undefined
NaN
それ以外の値はすべて「真(true)」と判定されます。
typeofと変換の注意点
typeof Number("abc"); // "number"(でも中身は NaN)
型は「number」でも、変換に失敗して NaN
になることもあります。常に中身の確認も忘れずに。
まとめ
- JavaScriptには自動と手動の2つの型変換がある
- 自動変換は便利だが、思わぬ挙動を生むこともある
String()
、Number()
、Boolean()
などを使って明示的に変換できる
- FalsyとTruthyの判定も覚えておくと条件分岐に役立つ
JavaScriptの型変換は柔軟で便利ですが、同時にバグの原因にもなりがちです。
明示的な変換を心がけることで、安全で分かりやすいコードを書くことができます。