1

我刚刚开始玩 Azure 移动服务。这非常酷,但是在尝试更改服务器端数据库脚本时,我注意到了一些奇怪的事情。一个具体的事情是,在编写一个简单的语句时,例如:

如果(结果。长度 == 0)

它警告我说我应该在与零比较时使用 === 而不是 ==。

有谁知道这是为什么?

4

2 回答 2

1

在松散类型的语言中,使用 ===(严格相等运算符)而不是 ==(相等运算符)通常很有用,因为否则在相等检查期间对象的类型将被强制转换。

例如,"0" == 0、 和"" == 0、 和[] == 0

但是,这些都不是=== 0

因此,如果results碰巧是一个具有空属性的对象length,如下所示:

var results = {
  length: ""
}

results.length == 0仍会评估为true.

于 2012-12-26T08:32:47.587 回答
0

因为

[] == 0 

是真的,但是

[] === 0

不是。

阅读JavaScript 比较运算符(尤其是严格相等)。

于 2012-12-26T08:29:51.310 回答