null本质上和0,"",false是一类东西,它们都表示一种数据类型的非值.正如0表示数字类型的非值,""表示字符类型的非值一样,null表示完全空的对象,即可以把它看成是对象类型的非值,没有任何属性的对象,({}不是完全空的对象,因为它继承了Object.prototype的属性,有一些自带方法.扩展一点,其实null就是Object.prototype的prototype....)因此typeof null返回object是完全合理的. 而undefined和…
null == undefined // true null == ''  // false null == 0 // false null == false // false undefined == '' // false undefined == 0 // false undefined == false // false '' == 0   // true '' == false // true 0 == false // true undefined,null和 0, '', fals…
当变量为'',false,null,undefined,0,NaN时,返回默认值 var a='' a || 'hello world'   "hello world" var a=false a || 'ccc' "ccc" var a=null a || 'ccc' "ccc" var a=undefined a || 'ccc' "ccc"   0 || 'ccc'  "ccc"  NaN || 'c…
<html> <head> <meta charset="utf-8" /> </head> <body> <input type="text" id="input_test"/> <script>   var test = function(a){ // NaN, undefined if(a != a){ alert('NaN / undefined'); }…
console.log(typeof null);//object console.log(typeof undefined);//undefined console.log(typeof "");//string console.log(typeof 0);//number console.log(typeof false);//boolean 在程序语言定义的各种各样的数据类型中,我们都会为其定义“空值”或“假值”,我们在标题里已经列出了js中的所有空值和假值,出来boolean本…
Boolean 表达式 一个值为 true 或者 false 的表达式.如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则: 所有的对象都被当作 true. 当且仅当字符串为空时,该字符串被当作 false. null 和 undefined 被当作 false. 当且仅当数字为零时,该数字被当作 false.…
1 1 1 === 全相等(全部相等) ==  值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console.log("all equal!") }else if(x==y){ console.log("just value equal!") }else{ onsole.log("not at all equal!") } VM3163:1 just va…
null == undefined //truefalse =='' //true boolean类型跟其它类型==时,会转换成Number类型 Number类型跟String类型==时,string类型会转换成Number类型 undefined == false // false undefined =='' //false !undefined //true !null //true !'' //true !false //true…
0与一些虚值的比较: 0与false 0==false true 0与'': =='' true 0与[]: ==[] true 0与NaN: 0==NaN false 0与undefined 0==undefined false 0与null 0==null false 0与{} 0=={} false ''空值与一些值的比较 '' == false true ''==undefined false ''==null false ''==NaN false ''==[] true ''=={}…
之前在看<JavaScript权威指南>的时候看到三个相等性比较的式子: null == undefined ;// ==>true undefined == false;// ==>false null ==false;// ==>false 对于第一个等式我默认是相等的了,就没有在意,但第二和第三个等式我觉得很奇怪,因为之前有看到过一句“下面这些值会被转换成false: undefined.null.0.-0. ' ' .NaN”,那么为什么后两个等式会不成立呢?当时看书…