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 |