类型转换
显式类型转换
- Number(mix) :将mix转换为数组,123abc不行,undefined不能被转换为number(NaN),null转换为0
- parseInt(String,radix):将String以radix进制转换为十进制整数,只会将数字转为整数,null,undefined,true,String参数,parseInt是以数字位一直看到非数字位,都NaN,reaix 取值范围是2-36
- parseFloat(String) :从数字位开始看,看到除第一个点以外的非数字
- String(radix) :将radix转换为字符串
- Boolean() :除false以外都是true,false有(0,"",null,undefinde,NaN,false)
- .toString(radix) :undefinde,null不能用toString;以十进制转换为redix进制返回
- 任何一个东西加空字符串都会变成字符串类型
隐式类型转换
- isNaN() 将值用Number()转换然后再和NaN比对
- ++/-- +/-(正/负) 在还没有运算时就已经将数值用Number()转换为数字,即使数值不是数字类型,运算失败,但他的类型也会被转为Number类型
- + (加号) 当两侧有一侧为String类型的就会调用String()将两侧都转换为String
- -*/% Number()
- && || ! 将第两侧的值用Boolean()转换,只不过返回的是实际的值
- < >/ >= <= 字符串与字符串相比较是比ASCLL码,只要一侧有数字,就会将另一侧用Number()转换
- == != Number() : undefinde == null,NaN!=NaN,
- === !== 全等于,类型和值都要相等
typeof
- 变量在没有定义的情况下使用,只有一种情况不会报错,就是放typeof()里面,会返回undefinde
- typeof(typeof(undefinde))返回的是String,typeof返回的是一个字符串,所以typeof(typeof(undefinde)) = typeof(“undefinde”) = String
- typeof返回的类型有:number、string、boolean、undefined、function、object