javascript js undefined null 0 false void(0) NaN 空字符串 比较 区别

javascript 中 undefined null 0 false void(0)  NaN 空字符串 在比较时感觉比较烦人!自己总结一下备用!

void(0) 可以理解为undefined  --具体的可以自己百度,很多人用void(0) 不用undefined 是有道理滴!

//结论1 (undefined == null == void(0))!=(0==false==空字符串)!=NaN
//结论2 (undefined===void(0))!==null!== void(0)!==0!== false!== 空字符串 !==NaN
// 结论3    取反 都为true --很多程序都是取反再取反 --这样做也是很有道理滴!
// 结论4   调用构造函数转换 都为false
var myBoolean= new Boolean();
var myBoolean1= new Boolean( 0);
var myBoolean2= new Boolean( null);
var myBoolean3= new Boolean( "");
var myBoolean4= new Boolean( false);
var myBoolean5= new Boolean(NaN);
console. info(myBoolean. valueOf());
console. info(myBoolean1. valueOf());
console. info(myBoolean2. valueOf());
console. info(myBoolean3. valueOf());
console. info(myBoolean4. valueOf());
console. info(myBoolean5. valueOf());

下面是验证结果!程序在后面!大家可以自己验证!
空==undefined      true
空==null      true
空==0      false
空==false      false
空==空字符串      false
空==void(0)      true
空==NaN      false
undefined==null      true
undefined==0      false
undefined==false      false
undefined==空字符串      false
undefined==void(0)      true
undefined==NaN      false
null==0      false
null==false      false
null==空字符串      false
null==void(0)      true
null==NaN      false
0==false      true
0==空字符串      true
0==void(0)      false
0==NaN      false
false==空字符串      true
false==void(0)      false
false==NaN      false
空字符串==void(0)      false
空字符串==NaN      false
void(0)==NaN      false

空===undefined      true
空===null      false
空===0      false
空===false      false
空===空字符串      false
空===void(0)      true
空===NaN      false
undefined===null      false
undefined===0      false
undefined===false      false
undefined===空字符串      false
undefined===void(0)      true
undefined===NaN      false
null===0      false
null===false      false
null===空字符串      false
null===void(0)      false
null===NaN      false
0===false      false
0===空字符串      false
0===void(0)      false
0===NaN      false
false===空字符串      false
false===void(0)      false
false===NaN      false
空字符串===void(0)      false
空字符串===NaN      false
void(0)===NaN      false

下面给出程序,大家可以自己验证!其中 定义不赋值 就是undefined 
<script>
     $(document).ready(function(){


         var a; //undefined
         var b = undefined;
         var c = null;
         var d = 0;
         var e = false;
         var f = "";
         var g = void (0);
         var h = NaN;


         var index = [a,b,c,d,e,f,g,h];
        var name = ['' , 'undefined' , 'null' , '0' , 'false' , '空字符串' , 'void(0)','NaN'];
         for(var i=0;i<index.length;i++){
             document.write(name[i]+"=" +!!index[i]);
             document.write("<br>");
         }
         document.write("<hr>");
        for(var i=0;i<name.length;i++){
            for(var j=i+1;j<name.length;j++){
            if((i+1)==name.length)break;
            document.write(name[i]+"==" + name[j] + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + (index[i]==index[j]));
             document.write("<br>");
             }

        }
        document.write("<hr>");
        for(var i=0;i<name.length;i++){
            for(var j=i+1;j<name.length;j++){
                if((i+1)==name.length)break;
                document.write(name[i]+"===" + name[j] + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + (index[i]===index[j]));
                document.write("<br>");
            }

        }
    });

</script>

发布了33 篇原创文章 · 获赞 13 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/my_flash/article/details/50468169