JavaScript 变量可以转换为新变量和另一种数据类型:
全局方法Number()
将变量(或值)转换为数字。
数字字符串(如 "3.14")转换为数字(如 3.14)。
空字符串(如 "")会转换为 0。
非数字字符串(如"John")转换为NaN
(不是数字)。
这些将转换:
Number("3.14")
Number(Math.PI)
Number(" ")
Number("")
这些不会转换:
Number("99 88")
Number("John")
亲自试一试 »
在章节中数字方法,您会发现更多可用于将字符串转换为数字的方法:
Method | Description |
---|---|
Number() | Returns a number, converted from its argument |
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
这个一元 + 运算符可用于将变量转换为数字:
如果变量无法转换,它仍然会变成一个数字,但带有值NaN
(不是数字):
全局方法String()
可以将数字转换为字符串。
它可以用于任何类型的数字、文字、变量或表达式:
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
亲自试一试 »
数字法toString()
做同样的事情。
在章节中数字方法,您会发现更多可用于将数字转换为字符串的方法:
Method | Description |
---|---|
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
全局方法Number()
可用于将日期转换为数字。
d = new Date();
Number(d) // returns 1404568027739
日期法getTime()
做同样的事情。
d = new Date();
d.getTime() // returns 1404568027739
全局方法String()
可以将日期转换为字符串。
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
日期方法toString()
做同样的事情。
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
在章节中日期方法,您会发现更多可用于将日期转换为字符串的方法:
Method | Description |
---|---|
getDate() | Get the day as a number (1-31) |
getDay() | Get the weekday a number (0-6) |
getFullYear() | Get the four digit year (yyyy) |
getHours() | Get the hour (0-23) |
getMilliseconds() | Get the milliseconds (0-999) |
getMinutes() | Get the minutes (0-59) |
getMonth() | Get the month (0-11) |
getSeconds() | Get the seconds (0-59) |
getTime() | Get the time (milliseconds since January 1, 1970) |
全局方法Number()
还可以将布尔值转换为数字。
Number(false) // returns 0
Number(true) // returns 1
全局方法String()
可以将布尔值转换为字符串。
String(false) // returns "false"
String(true) // returns "true"
布尔方法toString()
做同样的事情。
false.toString() // returns "false"
true.toString() // returns "true"
当 JavaScript 尝试操作 "wrong" 数据类型时,它会尝试将值转换为 "right" 类型。
结果并不总是你所期望的:
5 + null // returns 5 because null is converted to 0
"5" + null // returns "5null" because null is converted to "null"
"5" + 2 // returns "52" because 2 is converted to "2"
"5" - 2 // returns 3 because "5" is converted to 5
"5" * "2" // returns 10 because "5" and "2" are converted to 5 and 2
亲自试一试 »
JavaScript 自动调用变量的toString()
当您尝试"output"一个对象或变量时函数:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
数字和布尔值也会被转换,但这不是很明显:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
下表显示了将不同 JavaScript 值转换为数字、字符串和布尔值的结果:
Original Value |
Converted to Number |
Converted to String |
Converted to 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 | 尝试一下 » |
引号中的值表示字符串值。
红色值指示(某些)程序员可能不期望的值。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!