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