【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] + " " + (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] + " " + (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的比较没有结果呢,那么再开一个专题: