JavaScript基本数据类型及其转换规则
ECMAScript 数据类型
ECMAScript中有五种基本数据类型:Undefined
, Null
, Boolean
, Number
, String
一种复杂数据类型:Object
数据类型检测方法:typeof
函数
例:
var s = xx;
var res = typeof(s);
返回结果 | 意义 |
---|---|
“undefined” | 值未定义 |
"boolean" | 值为布尔类型 |
"string" | 值是字符串 |
"number" | 值为数值 |
"object" | 值是对象或null |
"function" | 值是函数 |
Boolean类型转换
# Boolean Boolean(true) == true Boolean(false) == false # String Boolean("") == false Boolean("ad") == true # Number Boolean(0) == false Boolean(NaN) == false Boolean(10) == true # Object Boolean({}) == ture Boolean(null) = false # Undefined Boolean(undefined) == false
数值转换
Number()
, parseInt()
和 parseFloat()
,第一个函数可以用于任何数量类型,而另外两个函数则专门用于把字符串转换成数值
参数 | Number() | parseInt(); parseInt("xx", [8|10|16]) |
---|---|---|
true | Number(ture) = 1 | NaN |
false | Number(false) = 0 | NaN |
13 | Number(13) = 13 | 13 |
null | Number(null) = 0 | NaN |
undefined | Number(undefined) = NaN | NaN |
"234" | Number("234") = 234 | 234 |
"1.1" | Number("1.1") = 1.1 | 1 |
"070" | Number("070") = 70 | parseInt("070") = 70; parseInt("070", 8) = 56 |
"0xf" | Number("0xf") = 15 | 15 |
"" | Number("") = 0 | NaN |
"123abc" | Number("123abc") = NaN | 123 |
Number()函数,如果参数是对象,则调用对象的valueOf()方法,然后依照前面的规则进行转换,如果结果是NaN,则调用对象的 toString()方法,然后依照前面的规则进行转换
字符串转换
String(10) = "10" String(true) = "true" String(null) = "null" String(undefined) = "undefined"