JavaScript 类型変換
- 前のページ JS typeof
- 次のページ JS デストラクチャ
Number()
数値への変換String()
文字列への変換Boolean()
ブール値の変換
JavaScriptのデータ型
JavaScriptには値を含めることができるデータ型が以下の通りです:
- 文字列(string)
- 数値(number)
- ブール(boolean)
- オブジェクト(object)
- 関数(function)
オブジェクトの種類は以下の通りです:
- オブジェクト(Object)
- 日付(Date)
- 配列(Array)
値を含めないデータ型が二種類あります:
- null
- undefined
typeof 演算子を使用できます
あなたは typeof
演算子を使用して JavaScript 変数のデータ型を決定します。
例
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof NaN // 返回 "number" typeof false // 返回 "boolean" typeof [1,2,3,4] // 返回 "object" typeof {name:'Bill', age:62} // 返回 "object" typeof new Date() // 返回 "object" typeof function () {} // 返回 "function" typeof myCar // 返回 "undefined" * typeof null // 返回 "object"
注意してください:
- NaNのデータ型は数値です
- 配列のデータ型はオブジェクトです
- 日付のデータ型はオブジェクトです
- nullのデータ型はオブジェクトです
- 未定義の変数のデータ型も undefined
- 未設定の変数のデータ型も undefined
使用することはできません。 typeof
JavaScriptオブジェクトが配列(または日付)であるかどうかを判断するために使用されます。
typeofのデータ型
typeof
運算子は変数ではありません。それは演算子です。例えば、 +
-
*
/
)没有数据类型。
但是,typeof
始终会返回字符串(包含运算数的类型)。
constructor 属性
constructor
属性返回所有 JavaScript 变量的构造器函数。
例
"Bill".constructor // 返回 "function String() { [native code] }" (3.14).constructor // 返回 "function Number() { [native code] }" false.constructor // 返回 "function Boolean() { [native code] }" [1,2,3,4].constructor // 返回 "function Array() { [native code] }" {name:'Bill', age:62}.constructor // 返回" function Object() { [native code] }" new Date().constructor // 返却値 "function Date() { [native code] }" function () {}.constructor // 返却値 "function Function(){ [native code] }"
次のように確認できます: constructor
属性を使用して、あるオブジェクトが配列("Array"という単語を含む)であるかどうかを確認します:
例
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
またはもっと簡単に、オブジェクトが配列関数であるかどうかを確認できます:
例
function isArray(myArray) { return myArray.constructor === Array; }
次のように確認できます: constructor
属性を使用して、あるオブジェクトが日付("Date"という単語を含む)であるかどうかを確認します:
例
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
またはもっと簡単に、オブジェクトが日付関数であるかどうかを確認できます:
例
function isDate(myDate) { return myDate.constructor === Date; }
JavaScript 类型変換
JavaScript 変数は、新しい変数および別のデータ型に変換できます:
- JavaScript 関数を使用して
- JavaScript 自体を通じて自動変換
数値を文字列に変換します
グローバルメソッド String()
数字を文字列に変換する機能があります。
これは任意の型の数字、文字、変数または式に使用できます:
例
String(x) // 数値変数 x から文字列を返します String(123) // 数値テキスト 123 から文字列を返します String(100 + 23) // 式の数値から文字列を返します
数値メソッド toString()
同様に。
例
x.toString() (123).toString() (100 + 23).toString()
次の例では、数値メソッドこの章では、数値を文字列に変換する方法としてさらに多くの方法を学びます:
メソッド | 説明 |
---|---|
toExponential() | 文字列を返します。数字を四捨五入し、指数記数法を使用して書きます。 |
toFixed() | 文字列を返します。数字を四捨五入し、指定された桁数の小数を使用して書きます。 |
toPrecision() | 文字列を返します。数字を指定された長さに書きます。 |
ブールを文字列に変換する
グローバルメソッド String()
ブールを文字列に変換することができます。
String(false) // "false" を返します String(true) // "true" を返します
ブールメソッド toString()
同様に。
false.toString() // "false" を返します true.toString() // "true" を返します
日付を文字列に変換する
グローバルメソッド String()
日付を文字列に変換することができます。
String(Date())
日付メソッド toString()
同様に。
例
Date().toString()
次の例では、日付メソッドこの章では、日付を文字列に変換するためのさらに多くのメソッドを見つけることができます:
メソッド | 説明 |
---|---|
getDate() | 数値(1-31)の日を取得します |
getDay() | または数値(0-6)の週 |
getFullYear() | 4桁の年(yyyy)を取得します |
getHours() | 時(0-23)を取得します |
getMilliseconds() | ミリ秒(0-999)を取得します |
getMinutes() | 分(0-59)を取得します |
getMonth() | 月(0-11)を取得します |
getSeconds() | 秒(0-59)を取得します |
getTime() | 時間(1970年1月1日からのミリ秒)を取得します |
文字列を数値に変換する
グローバルメソッド Number()
文字列を数値に変換できます。
数字を含む文字列(例えば "3.14")は数字(例えば 3.14)に変換されます。
空の文字列は 0 に変換されます。
他の文字列は NaN
(数値ではありません、数字ではありません)。
Number("3.14") // 3.14 を返します Number(" ") // 0 を返します Number("") // 0 を返します Number("99 88") // NaN を返します
次の例では、数値メソッドこの章では、文字列を数値に変換するためのさらに多くのメソッドを見つけることができます:
メソッド | 説明 |
---|---|
parseFloat() | 文字列を解析して浮動小数点数を返します。 |
parseInt() | 文字列を解析して整数を返します。 |
一元 + 演算子
一元的 +
演算子変数を数値に変換するために使用できる:
例
var y = "5"; // y は文字列 var x = + y; // x は数値
変数を変換できなかった場合でも、値は NaN
(数値ではありません):
例
var y = "Bill"; // y は文字列 var x = + y; // x は数字 (NaN)
ブールを数値に変換
グローバルメソッド Number()
ブールも数字に変換できます。
Number(false) // 返回 0 Number(true) // 返回 1
日付を数字に変換
グローバルメソッド Number()
日付を数字に変換するために使用できます。
d = new Date(); Number(d)
日付メソッド getTime()
同様に。
d = new Date(); d.getTime()
自動的な型変換
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; // myVar = {name:"Fjohn"} 的情况下 // toString 轉換して "[object Object]" // myVar = [1,2,3,4] 的情况下 // toString 轉換して "1,2,3,4" // myVar = new Date() 的情况下 // toString 轉換して ""
数字やブールも変換されるが、明確ではありません:
// myVar = 123 的情况下 // toString 轉換して "123" // myVar = true 的情况下 // toString 轉換して "true" // 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 | 試してみてください |
引用符内の値は文字列値を示しています。
赤い値プログラマーが望まない値を示しています。
- 前のページ JS typeof
- 次のページ JS デストラクチャ