js中boolean,number,string三种类型的数据做比较时,类型相同时直接比较,类型不同时先转化为number的数据类型,然后再做比较。如:
alert(NaN==NaN);//false alert(true=="true");//false alert(Number(true));//1 alert(Number("true"));//NaN alert(true==1);//true alert(true==2);//false alert(5=="5");//true alert(Number(5));//5 alert(Number("5"));//5 alert(Number("wsdefsfs"));//NaN
alert(Number(""));//弹出0,而不是NaN var a1;//a1为undefined var a2 = null; var a3 = NaN; alert(a1==a2);//true alert(a1==a3);//false alert(a2==a3);//false alert(a1==0);//false
特别注意这个:
alert(Number(""));//弹出0,而不是NaN
表明undefined与null是相等的,NaN和任何值都不相等,包括它自己。