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() | 返回一个数字,从其参数转换而来 |
parseFloat() | 解析字符串并返回一个浮点数 |
parseInt() | 解析字符串并返回一个整数 |
一元 + 运算符
一元 + 运算符 可用于将变量转换为数字
如果变量无法转换,它仍然会变成一个数字,但值将为 NaN
(非数字)
将数字转换为字符串
全局方法 String()
可以将数字转换为字符串。
它可以用于任何类型的数字、字面量、变量或表达式
示例
String(x) // 从数字变量 x 返回一个字符串
String(123) // 从数字字面量 123 返回一个字符串
String(100 + 23) // 从表达式中的数字返回一个字符串
自己试试 »
Number 方法 toString()
执行相同的操作。
更多方法
在章节 数字方法 中,您将找到更多可用于将数字转换为字符串的方法
方法 | 描述 |
---|---|
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)"
在章节 日期方法 中,您将找到更多可用于将日期转换为字符串的方法
方法 | 描述 |
---|---|
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 值转换为 Number、String 和 Boolean 的结果
原始 值 |
转换为 数字 |
转换为 字符串 |
转换为 布尔值 |
尝试它 |
---|---|---|---|---|
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 | 尝试它 » |
带引号的值表示字符串值。
红色值 表示一些程序员可能不会预期的值。