javascript
中有6种假值,分别是:
- false
- null
- undefined
- NaN
- 0(数字)
- ''(空字符串)
假值的意思就是非真值,这样说可能有点绕,其实这涉及到我们在程序中做真值判断,比如我们有一个变量 foo
,当我们用 if (!foo)
来做判断的时候,如果 foo
是上述6种假值之一,这个判断就会返回 true
。
下面我们就来看一下这6种假值之间的相等情况,注意这里是相等(==
),不是全等(===
),如果全等判断的话,6种假值任何2个都是非全等的。
null == undefined // true
-
null
或undefined
和其他任何4个假值相等判断都是false
,例如:null == 0 // false
-
false
,0
,''
, 这3种假值互相做相等判断都是true
,即:false==0 // true
,0=='' // true
,''==false // true
-
NaN
和其他任何假值相等判断都是false
,例如:NaN==false // false
另外有2种特殊情况,判断的对方都是真值,但是相等判断为true
。
- 字符串
'0'
是真值,但是和数字0判断时会先转换类型为数字0,所以0=='0' // true
,同时false=='0' // true
,但是''=='0' // false
,这里要多加注意。 - 空数组
[]
是真值,但是和数字0,false
,''
判断都是true
,即0==[] // true
,false==[] // true
,''==[] // true
以上就是javascript中假值之间相等判断的情况总结,最后我们建议大家在做相等判断时,尽量使用全等(===
)判断,以避免相等(==
)判断中有可能出现的非期望情况。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。