现在的位置: 首页 > 综合 > 正文

null、 undefined、 0、 false、 “” 谁等于谁

2013年12月03日 ⁄ 综合 ⁄ 共 638字 ⁄ 字号 评论关闭

JavaScript 这类弱类型的语言,在判断相等方面很麻烦,明明不是一个东西,却相等了。这里通过示例展示 null、 undefined、 0、 false、 "" 的相等情况。

var arr = [null, undefined, 0, false""];
var str = "";
for (var i = 0; i < arr.length;
i++)

{

    for (var j = i + 1; j < arr.length;
j++)

    {

        if (arr[i] == arr[j])

        {

            str += arr[i]  + " == " + ((j != 4) ? arr[j] : "\"\"")
"\n";

        }

        else

        {

            str += arr[i]  + " != " + ((j != 4) ? arr[j] : "\"\"")
"\n";

        }

    }

}

结果

null == undefined 

null != 0 

null != false 

null != "" 

undefined != 0 

undefined != false 

undefined != "" 

0 == false 

0 == "" 

false == ""

可以看出 null 与 undefined 是一伙的;而 0、false、"" 又是另外一伙的。

怎么排除干扰?

由于不同的数据类型之间都等起来了,要排除干扰,比如让 0 不等于 "",怎么办呢?用恒等 === 或 !==。这样他们就谁都不等于谁了。

抱歉!评论已关闭.