1.1 明示的な型変換
JavaScriptでの型変換は、あるデータ型から別のデータ型に値を変換するプロセスだよ。型変換には 明示的(手動)と暗黙的(自動)の2つのタイプがあるんだ。このプロセスを理解することは、エラーを防ぎ、予測可能なコードを作成するために重要なんだ。
明示的な型変換、または手動変換としても知られていて、JavaScriptの組み込み関数や メソッドを使って行われるんだ。プログラマーがどのデータ型を他の型に変換するかを明示的に指定するんだ。
明示的な変換の主なメソッド:
1. 文字列への変換
- メソッド
String(value)
: 値を文字列に変換する
JavaScript
let num = 123;
let str = String(num);
console.log(typeof str); // "string"
value.toString()
: オブジェクトのメソッドで、値を文字列に変換する
JavaScript
let bool = true;
let str = bool.toString();
console.log(typeof str); // "string"
2. 数値への変換
Number(value)
: 値を数値に変換する
JavaScript
let str = "456";
let num = Number(str);
console.log(typeof num); // "number"
parseInt(value, base)
: 文字列を整数に変換する。パラメータbase
は基数を指定する
JavaScript
let str = "123";
let num = parseInt(str, 10);
console.log(typeof num); // "number"
parseFloat(value)
: 文字列を浮動小数点数に変換する
JavaScript
let str = "123.45";
let num = parseFloat(str);
console.log(typeof num); // "number"
3. ブール値への変換
Boolean(value)
: 値をブール値に変換する
JavaScript
let str = "";
let bool = Boolean(str);
console.log(typeof bool); // "boolean"
1.2 暗黙的な型変換
暗黙的な型変換、または自動的や隠れた変換とも呼ばれ、JavaScriptがデータ型の異なる オペランドを操作するときに自動で実行されるんだ。暗黙的な変換は予期しない結果を生むことがあるから、理解して注意して使うべきだよ。
1. 文字列への変換
重要!
任意のオブジェクトと文字列を足すとき、JavaScriptはオブジェクトを文字列に変換しようとするんだ。
例:
JavaScript
let result = "The number is " + 123;
console.log(result); // "The number is 123"
2. 数値への変換
重要!
文字列に含まれる数字に他の算術演算子(+を除く)を使った時のこと。
JavaScript
let result = "123" - 0;
console.log(result); // 123 (数値)
実際の動作例:
JavaScript
let result = "123" - 10;
console.log(result); // 113 (数値)
let result2 = "123" + 10;
console.log(result2); // 12310 (文字列)
3. ブール値への変換
論理的なコンテキスト(条件演算子、ループなど)で値を使用する場合。
JavaScript
let value = "hello";
if (value) {
console.log("Value is truthy"); // 出力: "Value is truthy"
}
論理的なコンテキストでの変換例:
false
,0
,""
(空文字列),null
,undefined
, とNaN
は偽(false
)とみなされる- その他のすべての値は真(
true
)とみなされる
JavaScript
if ("") {
console.log("This won't be logged.");
} else {
console.log('"" is considered false in a boolean context.');
}
// '"" is considered false in a boolean context.'
1.3 暗黙的な変換の例
算術演算子を使った例:
JavaScript
let width = "100";
let height = "200";
let area = Number(width) * Number(height); // 明示的な変換
console.log(area); // 20000
let perimeter = (+width) + (+height); // 明示的な変換に単項プラスを使用
console.log(perimeter); // 300
論理コンテキストの例:
JavaScript
let userInput = ""; // 空文字列
if (!userInput) {
console.log("ユーザーはデータを入力しなかった。"); // 文字列をブール値に暗黙的に変換
}
混合型の例:
JavaScript
let value = "10";
let increment = 5;
let result = value + increment; // 数値を文字列に暗黙的に変換
console.log(result); // "105"
result = Number(value) + increment; // 文字列を数値に明示的に変換
console.log(result); // 15
GO TO FULL VERSION