1

javascript中有6种假值,分别是:

  1. false
  2. null
  3. undefined
  4. NaN
  5. 0(数字)
  6. ''(空字符串)

假值的意思就是非真值,这样说可能有点绕,其实这涉及到我们在程序中做真值判断,比如我们有一个变量 foo,当我们用 if (!foo) 来做判断的时候,如果 foo 是上述6种假值之一,这个判断就会返回 true

下面我们就来看一下这6种假值之间的相等情况,注意这里是相等(==),不是全等(===),如果全等判断的话,6种假值任何2个都是非全等的。

  1. null == undefined // true
  2. nullundefined 和其他任何4个假值相等判断都是 false,例如:null == 0 // false
  3. false, 0, '', 这3种假值互相做相等判断都是 true,即:false==0 // true, 0=='' // true, ''==false // true
  4. NaN 和其他任何假值相等判断都是 false,例如:NaN==false // false

另外有2种特殊情况,判断的对方都是真值,但是相等判断为true

  1. 字符串'0'是真值,但是和数字0判断时会先转换类型为数字0,所以 0=='0' // true,同时 false=='0' // true,但是 ''=='0' // false,这里要多加注意。
  2. 空数组 [] 是真值,但是和数字0, false,'' 判断都是true,即0==[] // truefalse==[] // true''==[] // true

以上就是javascript中假值之间相等判断的情况总结,最后我们建议大家在做相等判断时,尽量使用全等(===)判断,以避免相等(==)判断中有可能出现的非期望情况。


胡岗
554 声望27 粉丝

一切有为法 如梦幻泡影