日期:2014-05-16  浏览次数:20353 次

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);//true
alert(!true);//false
alert(!null);//true
alert(!undefined);//true
alert(!"");//true
alert(!"abc");//false
alert(!{});//false
alert(!function(){});//false
alert(!0);//true
alert(!NaN);//true
alert(!Infinity);//false
alert(!123);//false


2、数字与字符串的自动转换
(1)加号“+”,只要有一个操作数是字符串,会并接起来
alert(5+5);//10
alert("the sum of 5 and 5 is :"+(5+5));//the sum of 5 and 5 is :10
alert(5+"5");//55
alert("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自动转为1
alert(NaN-1);//NaN,只要有一个操作数为NaN,结果为NaN
alert(5-4);//1
alert(5-"");//5,""自动转为0
alert(5-"2");//4,"2"自动转为1
alert(5-null);//5,null自动转为0

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