JavaScript 型変換
目次
文字列から数値への変換
グローバルメソッドNumber()は、変数(または値)を数値に変換します。
- 数値の文字列(例:”3.14″)は数値に変換されます(例:3.14)。
- 空の文字列(例:””)は0に変換されます。
- 数値でない文字列(例:”John”)はNaN(数値でないことを表す値)に変換されます。
例
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
これらは変換されますが:
Number("99 88")
Number("John")
メソッド
Number Methods章では、文字列を数値に変換するための他のメソッドも紹介されています:
メソッド | 説明 |
---|---|
Number() | 引数を数値に変換して返す |
parseFloat() | 文字列を解析して浮動小数点数を返す |
parseInt() | 文字列を解析して整数を返す |
単項+演算子
単項+演算子は変数を数値に変換するために使用できます。
例
let y = "5"; // yは文字列
let x = + y; // xは数値
変数を変換できない場合、値はNaN(数値でないことを表す特別な値)になります:
例
let y = "John"; // yは文字列
let x = + y; // xは数値(NaN)
数値から文字列への変換
グローバルメソッドString()は、数値を文字列に変換します。
リテラル、変数、または式で使用できます。
例
String(x) // 数値変数xを文字列に変換
String(123) // 数値リテラル123を文字列に変換
String(100 + 23) // 式からの数値を文字列に変換
NumberメソッドのtoString()も同様のことができます。
例
x.toString()
(123).toString()
(100 + 23).toString()
メソッド
Number Methods章では、数値を文字列に変換するための他のメソッドも紹介されています:
メソッド | 説明 |
---|---|
toExponential() | 数値を指数表記で文字列に変換して返す |
toFixed() | 数値を指定した小数点以下の桁数で文字列に変換して返す |
toPrecision() | 数値を指定した長さで文字列に変換して返す |
日付から数値への変換
グローバルメソッドNumber()は、日付を数値に変換するために使用できます。
let d = new Date();
Number(d) // 数値に変換して返す
日付メソッドgetTime()も同様のことができます。
let d = new Date();
d.getTime() // 数値に変換して返す
日付から文字列への変換
グローバルメソッドString()は、日付を文字列に変換します。
String(Date()) // 文字列に変換して返す
DateメソッドのtoString()も同様のことができます。
例
Date().toString() // 文字列に変換して返す
メソッド
Date Methods章では、日付を文字列に変換するための他のメソッドも紹介されています:
メソッド | 説明 |
---|---|
getDate() | 日付を1から31の数値で取得する |
getDay() | 曜日を0から6の数値で取得する |
getFullYear() | 年を4桁で取得する |
getHours() | 時を0から23の数値で取得する |
getMilliseconds() | ミリ秒を0から999の数値で取得する |
getMinutes() | 分を0から59の数値で取得する |
getMonth() | 月を0から11の数値で取得する |
getSeconds() | 秒を0から59の数値で取得する |
getTime() | 1970年1月1日午前0時からのミリ秒数を取得する |
ブーリアンから数値への変換
グローバルメソッドNumber()はブーリアンも数値に変換することができます。
Number(false) // 0を返す
Number(true) // 1を返す
ブーリアンから文字列への変換
グローバルメソッドString()はブーリアンを文字列に変換します。
String(false) // "false"を返す
String(true) // "true"を返す
BooleanメソッドのtoString()も同様のことができます。
false.toString() // "false"を返す
true.toString() // "true"を返す
自動型変換
JavaScriptが「間違った」データ型で操作しようとすると、値を「正しい」タイプに変換しようとします。
結果は常に予想どおりではありません:
5 + null // 5を返す、nullが0に変換されるため
"5" + null // "5null"を返す、nullが文字列"null"に変換されるため
"5" + 2 // "52"を返す、2が文字列"2"に変換されるため
"5" - 2 // 3を返す、"5"が数値5に変換されるため
"5" * "2" // 10を返す、"5"と"2"が数値5と2に変換されるため
自動文字列変換
JavaScriptはオブジェクトまたは変数を「出力」しようとすると、自動的に変数のtoString()関数を呼び出します。
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toStringは"[object Object]"に変換されます
// if myVar = [1,2,3,4] // toStringは"1,2,3,4"に変換されます
// if myVar = new Date() // toStringは"Fri Jul 18 2014 09:08:55 GMT+0200"に変換されます
数値とブーリアンも変換されますが、これはあまり目立たないです:
// if myVar = 123 // toStringは"123"に変換されます
// if myVar = true // toStringは"true"に変換されます
// if myVar = false // toStringは"false"に変換されます
JavaScript型変換表
この表は、さまざまなJavaScriptの値を数値、文字列、ブーリアンに変換した結果を示しています:
元の値 | 数値に変換 | 文字列に変換 | ブーリアンに変換 |
---|---|---|---|
false | 0 | “false” | false |
true | 1 | “true” | true |
0 | 0 | “0” | false |
1 | 1 | “1” | true |
“0” | 0 | “0” | true |
“000” | 0 | “000” | true |
“1” | 1 | “1” | true |
NaN | NaN | “NaN” | false |
Infinity | Infinity | “Infinity” | true |
-Infinity | -Infinity | “-Infinity” | true |
“” | 0 | “” | false |
“20” | 20 | “20” | true |
“twenty” | NaN | “twenty” | true |
[] | 0 | “” | true |
[20] | 20 | “20” | true |
[10,20] | NaN | “10,20” | true |
[“twenty”] | NaN | “twenty” | true |
[“ten”,”twenty”] | NaN | “ten,twenty” | true |
function(){} | NaN | “function(){}” | true |
{} | NaN | “[object Object]” | true |
null | 0 | “null” | false |
undefined | NaN | “undefined” | false |