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 | 试一试 » |
引号中的值表示字符串值。
红色值表示(一些)程序员可能不会期望的值。