【javascript】undefined null 0 false void(0) NaN 空字符串 比较

1.通过代码实现比较功能:

$(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>");
        }
    }
});

2.结果如下:

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

==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

 我们发现一个问题:为什么NaN的比较没有结果呢,那么再开一个专题:

为什么 NaN 不等于自己?

posted on 2017-10-17 16:20  忆华灯纵博  阅读(341)  评论(0编辑  收藏  举报