JavaScript 检测值
了解常见的真值和假值,可以增强判断能力。在使用if判断时,提升编码速度。
了解常见的检测和存在,一样可以增强判断能力,而且是必须掌握的。
数组和对象被视为真值
1 var shoppingCart=['鞋','连衣裙','皮带']; 2 println(Boolean(shoppingCart)); 3 4 var person={};//字面量创建对象 5 6 // 设置字面量对象属性 7 person.name='huangshiren'; 8 person.age=58; 9 person.appetite=3; 10 person.eat=function(){ 11 document.write('正在吃饭'); 12 } 13 14 println(Boolean(person)); 15 16 function println(a){ 17 document.write(a+'<br>'); 18 }
严格等于下的特殊值
false与0与''
表达式 | 结果 |
(false==0) | true |
(false===0) | false |
(false=='') | true |
(false==='') | false |
(0=='') | true |
(0==='') | false |
示例
1 println(false==0); 2 println(false===0); 3 println(false==''); 4 println(false===''); 5 println(0==''); 6 println(0===''); 7 8 function println(a){ 9 document.write(a+'<br>'); 10 }
null与undefined
null和undefined都是假值。null和undefined相等,undefined和undefined相等,null和null相等。
表达式 | 结果 |
(undefined==null) | true |
(null==false) | false |
(undefined==false) | false |
(null==0) | false |
(undefined==0) | false |
(undefined===null) | false |
示例
1 println(undefined==true); 2 println(undefined===true); 3 println(undefined==false); 4 println(undefined===false); 5 println(undefined==null); 6 println(undefined===null); 7 println(undefined==0); 8 println(undefined===0); 9 println(null==0); 10 println(null===0); 11 println(null==false); 12 println(null===false); 13 println(null==true); 14 println(null===true); 15 16 function println(a){ 17 document.write(a+'<br>'); 18 }
NaN和null
NaN为假值,NaN不等于任何值
表达式 | 结果 |
(NaN==null) | false |
(NaN==NaN) | false |