JavaScript 型別轉換
- 將字串轉換為數字
- 將數字轉換為字串
- 將日期轉換為數字
- 將數字轉換為日期
- 將布林值轉換為數字
- 將數字轉換為布林值
JavaScript 型別轉換
JavaScript 變數可以轉換為新變數和另一種資料型別
- 透過使用 JavaScript 函式
- 由 JavaScript 本身**自動**轉換
將字串轉換為數字
全域性方法 Number()
將變數(或值)轉換為數字。
數字字串(如“3.14”)轉換為數字(如 3.14)。
空字串(如“"”)轉換為 0。
非數字字串(如“John”)轉換為 NaN
(非數字)。
示例
這些將轉換:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
這些將不轉換:
Number("99 88")
Number("John")
自己動手試一試 »
Number 方法
在 Number 方法 一章中,您將找到更多可用於將字串轉換為數字的方法。
方法 | 描述 |
---|---|
Number() | 返回從其引數轉換而來的數字 |
parseFloat() | 解析字串並返回浮點數 |
parseInt() | 解析字串並返回整數 |
一元 + 運算子
一元 **+ 運算子**可用於將變數轉換為數字
如果變數無法轉換,它仍將成為一個數字,但值為 NaN
(非數字)
將數字轉換為字串
全域性方法 String()
可以將數字轉換為字串。
它可用於任何型別的數字、字面量、變數或表示式
示例
String(x) // 從數字變數 x 返回一個字串
String(123) // 從數字字面量 123 返回一個字串
String(100 + 23) // 從表示式的數字返回一個字串
自己動手試一試 »
Number 方法 toString()
也執行相同的操作。
更多方法
在 Number 方法 一章中,您將找到更多可用於將數字轉換為字串的方法。
方法 | 描述 |
---|---|
toExponential() | 返回一個字串,其中數字經過四捨五入並使用指數表示法書寫。 |
toFixed() | 返回一個字串,其中數字經過四捨五入並使用指定的小數位數書寫。 |
toPrecision() | 返回一個字串,其中數字以指定的長度書寫 |
將日期轉換為數字
全域性方法 Number()
可用於將日期轉換為數字。
d = new Date();
Number(d) // 返回 1404568027739
日期方法 getTime()
也執行相同的操作。
d = new Date();
d.getTime() // 返回 1404568027739
將日期轉換為字串
全域性方法 String()
可以將日期轉換為字串。
String(Date()) // 返回 "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
日期方法 toString()
也執行相同的操作。
示例
Date().toString() // 返回 "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
在 Date 方法 一章中,您將找到更多可用於將日期轉換為字串的方法。
方法 | 描述 |
---|---|
getDate() | 將日期作為數字獲取 (1-31) |
getDay() | 將星期幾作為數字獲取 (0-6) |
getFullYear() | 獲取四位數字的年份 (yyyy) |
getHours() | 獲取小時數 (0-23) |
getMilliseconds() | 獲取毫秒數 (0-999) |
getMinutes() | 獲取分鐘數 (0-59) |
getMonth() | 獲取月份數 (0-11) |
getSeconds() | 獲取秒數 (0-59) |
getTime() | 獲取時間(自 1970 年 1 月 1 日以來的毫秒數) |
將布林值轉換為數字
全域性方法 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;
// 如果 myVar = {name:"Fjohn"} // toString 轉換為 "[object Object]"
// 如果 myVar = [1,2,3,4] // toString 轉換為 "1,2,3,4"
// 如果 myVar = new Date() // toString 轉換為 "Fri Jul 18 2014 09:08:55 GMT+0200"
數字和布林值也會被轉換,但這並不明顯
// 如果 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 | 試一試 » |
引號中的值表示字串值。
紅色值表示(一些)程式設計師可能不會期望的值。