typeof的返回值
1.number
2.string
3.boolean
4.object (null...)
5.function
6.undefined
类型转换
1.显示类型转换
-
Number()
Number(null)-->0 Number(undefined)-->NaN 将括号里面的转换为数字类型,如果不是数字转换为NaN
-
parseInt()
将括号里面的转换为整型数字,小数点后面的直接去掉,parseInt(true).....都转换为NaN var demo = "10"; var num = parseInt(demo,16); 以16进制为基底进行转换为10进制 var demo = "123abc"; var num = parseInt(demo); num = 123; parseInt从数字位开始看,到非数字位截止
-
parseFloat()
与parseInt()基本相同,从数字位开始,到第一个小数点后面非数字位截止 var demo = "123.1abd"; var num = parseInt(demo); num = 123.1
-
toString()
var demo = 123; var num = demo.toString(); 将数字123转换为字符串"123" (undefined,null不可以使用toString方法) 也可以实现进制之间的转换 var demo = 10; var num = demo.toString(8); 将十进制的10,转换为八进制num = 12
-
String()
将括号里面的转换位字符串
-
Boolean()
将括号里面转换为布尔值(true,false),除了(undefined,null,NaN,"",0,false)这6个值转换为false,其他都转换为true
2.隐式类型转换
隐式类型转换内部调用显示类型转换的方法
-
isNaN() -->Number()
先将括号里的变量用Number方法进行转换,然后再将转换的结果与NaN进行比对,是就返回true,不是就返回false
-
++/-- +/- --Number()
调用的也是Number方法,转换后该值的类型为number 当+号两边有一个为字符串类型时就调用String()方法
-
-*/% – Number()
"a" * 1 --->Number("a") * Number(1) --->NaN *1 转换后的类型为number
-
&&||!
-
< > <= >=
当字符串与数字比较时,都转换为数字比较 1>2>3 返回结果为false 1>2的结果为false,再将false转换为0,0>3结果为false
-
== !=
特殊(undefiner == null)
3.不发生类型转换
===和!==(绝对等于和绝对不等于)
4.补充
当a未定义
typeof(typeof(a))
最终的返回结果为string
最里面的typeof(a)返回结果为"undefined"字符串类型的undefined