JavaScript中常用的类型转换方法:
在JavaScript中,有5种常用的数据类型:
Object类型中常用有如下三种:
以下两种类型值为空:
通过typeof运算符可以得到对象的数据类型。
typeof "Jerk" // 返回"string" typeof 6.66 // 返回"number" typeof NaN // 返回"number" typeof false // 返回"boolean" typeof [1,2,3,4] // 返回"object" typeof {name:'Jerk', age:118} // 返回"object" typeof new Date() // 返回"object" typeof function () {} // 返回"function" typeof zhuanfou // 返回"undefined" typeof null // 返回"object"
使用String()方法可以将数字转成字符串。
String(x) // x是一个变量,返回字符串结果 String(666) // 返回字符串666 String(66.6) // 返回字符串66.6
使用toString()方法也可以达到同样效果。
x.toString() (666).toString() (66.6).toString()
关于字符串转为数字,更细的操作方法,请查看这里。
使用String()方法或者toString()方法即可把布尔型转成字符串,很简单。
String(false) // 返回字符串"false" String(true) // 返回字符串"true" false.toString() // 返回字符串"false" true.toString() // 返回字符串"true"
使用Number()方法可将字符串转成数字。若传入空字符串或空格字符串进入此方法中,则返回数字0;若传入无法数字化的字符串,则返回NaN。
Number("6.66") // returns 3.14 Number(" ") // returns 0 Number("") // returns 0 Number("66 66") // returns NaN
关于把字符串转成数字,还有parseFloat()方法将字符串转成实数、parseInt()方法将字符串转成整数。更多请查看这里。
如下所示,单独的+运算符(左侧为空,右侧放置字符串对象)的作用是把字符串转成数字。
var x = "666"; // x是字符串 var y = + x; // y是数字
若字符串无法被转成数字,则返回NaN(值为空,但对象类型会属于Number数字类型)
var x = "zhuanfou"; // x是字符串 var y = + x; // y是数字(NaN)
通过Number()方法可以将布尔型直接转成数字,false会被转成0,true会被转成1。
Number(false) // 返回0 Number(true) // 返回1
运算中,有时会自动进行类型转换。
7 + null // 返回 7 因为 null 会被自动转成 0 "7" + null // 返回 "7null" 因为 null 会被自动转成 "null" "7" + 2 // 返回 "72" 因为 2 会被自动转成 "2" "7" - 2 // 返回 5 因为 "7" 会被自动转成 7 "7" * "2" // 返回 14 因为 "7"和"2" 分别会被自动转成 7和2 "7" / "2" // 返回 3.5 因为 "7"和"2" 分别会被自动转成 7和2
对象原值 | 转成数字(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 |
"nine" | NaN | "nine" | true |
[] | 0 | "" | true |
[20] | 20 | "20" | true |
[1,20] | NaN | "1,20" | true |
["反清", "复明"] | NaN | "反清,复明" | true |
function(){} | NaN | "function(){}" | true |
{} | NaN | "[object Object]" | true |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |