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());
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
下面给出程序,大家可以自己验证!其中 定义不赋值 就是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] + " " + (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>"); } } }); </script>