Javascript Azure移动服务-服务器端脚本-使用===

Javascript Azure移动服务-服务器端脚本-使用===,javascript,windows-phone-8,azure-mobile-services,Javascript,Windows Phone 8,Azure Mobile Services,我刚刚开始玩Azure移动服务。这非常酷,但是在尝试更改服务器端数据库脚本时,我注意到了一些奇怪的事情。一个具体的问题是,在编写一个简单的语句时,如: 如果(results.length==0) 它警告我在与零比较时应该使用===而不是== 有人知道为什么吗?因为 [] == 0 是真的,但是 [] === 0 不是 阅读(特别是严格平等)。因为 [] == 0 是真的,但是 [] === 0 不是 阅读(特别是严格相等)。在松散类型的语言中,使用==(严格相等运算符)而不是==(相

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

如果(results.length==0)

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

有人知道为什么吗?

因为

[] == 0 
是真的,但是

[] === 0
不是

阅读(特别是严格平等)。

因为

[] == 0 
是真的,但是

[] === 0
不是


阅读(特别是严格相等)。

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

例如,
“0”==0
“==0
[]==0

但是,没有一个
==0

因此,如果
结果
恰好是一个具有空属性
长度
的对象,如下所示:

var results = {
  length: ""
}

results.length==0
仍将计算为
true

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

例如,
“0”==0
“==0
[]==0

但是,没有一个
==0

因此,如果
结果
恰好是一个具有空属性
长度
的对象,如下所示:

var results = {
  length: ""
}

results.length==0
仍将计算为
true

这不是真的
null==0
。啊,这是真的,这是我的PHP。(在PHP中,null==0。在Javascript中它不。)编辑,谢谢。
null==0
不是真的。啊,是的,这是我的PHP。(在PHP中,null不==0。在Javascript中它不。)。