javascript自动变换

javascript自动转换javascript逻辑非或者if条件判断或都数字运算等都会发生自动转换,分类总结如下:1、逻辑

javascript自动转换
javascript逻辑非或者if条件判断或都数字运算等都会发生自动转换,分类总结如下:
1、逻辑非的自动转换
事实上跟!Boolean(v)的结果一样
(1)Boolean:true->true,false->false
(2)String:任何非空字符->true,""->false
(3)Number:任何非零字符(包括无穷大)->true,0和NaN->false
(4)Object:任何对象->true,null->false
(5)Undifined:undefined->false

alert(!false);//truealert(!true);//falsealert(!null);//truealert(!undefined);//truealert(!"");//truealert(!"abc");//falsealert(!{});//falsealert(!function(){});//falsealert(!0);//truealert(!NaN);//truealert(!Infinity);//falsealert(!123);//false


2、数字与字符串的自动转换
(1)加号“+”,只要有一个操作数是字符串,会并接起来
alert(5+5);//10alert("the sum of 5 and 5 is :"+(5+5));//the sum of 5 and 5 is :10alert(5+"5");//55alert("the sum of 5 and 5 is :"+5+5);//the sum of 5 and 5 is :55

(2)减号“-”,只要有一个操作数是字符串、布而值、null、undefined,后台自动调用Number()转换再进行计算
alert(8-true);//7,true自动转为1alert(NaN-1);//NaN,只要有一个操作数为NaN,结果为NaNalert(5-4);//1alert(5-"");//5,""自动转为0alert(5-"2");//4,"2"自动转为1alert(5-null);//5,null自动转为0

暂时总结以上几种,以后有空补上。