JS条件比较

来源:互联网 发布:八仙饭店知乎 编辑:程序博客网 时间:2024/05/29 17:33
<span style="font-size:18px;"><script type="text/javascript">window.onload = function(){var current = 12;//false//var current = "12";//false//var current = "str";//true//isNaN() 函数(is Not a Number)用于检查其参数是否是非数字值//检查 parseInt 和 parseFloat 方法的返回值if(isNaN(current)){alert("true");}else{alert("false");}//对于数字类型,非0用于条件比较代表trueif(1 && -1){alert("true");}alert(!0);//true//对于空串"" 代表falseif(!""){alert(!"");}//undefined被当成基本类型,undefined转换成数字是NaN,//因此undefined与除null之外的其它类型值进行比较时始终返回false(注意NaN==NaN返回false) //null被当成复合对象,由于null没有valueOf与toString方法,//因此和除了undefined之外的其它类型值进行比较时始终返回false  //Undefined类型只有一个值.即undefined.---undefined值从null值派生而来,二者值相等//Null类型只有一个值,即null.if(undefined == null){alert("true");}if(!(undefined === null)){alert("true");}if(isNaN(undefined)){alert("true");}alert(typeof null);//object//当函数没有明确返回值时,返回undefinedfunction func(){}alert(func() == undefined); //truevar undefined = void null;  //void函数永远返回undefinedvar undefined = "myValue"; //相当于window.undefined = "myValue";//总结://1.Number,Boolean,String,Undefined这几种基本类型混合比较时,会将其转换成数字再进行比较//*******一般转换失败时,NaN(Not a Number) //2.基本类型与复合对象进行比较时,会先将复合对象转换成基本类型(依次调用valueOf与toString方法)再进行比较alert(1==true);//true转换成数字也是1  alert('1'==true);//将字符串'1'与true都转换成数字    alert('abc'==true);//虽然字符串'abc'转换成布尔值是true,但这里会返回false  //因为'abc'转换成数字是NaN,而true转换成数字是1   alert(123=='123');//同理,true }</script></span>

0 0
原创粉丝点击