我刚刚开始玩 Azure 移动服务的东西。它非常酷,但是在尝试更改服务器端数据库脚本时我注意到了一些奇怪的事情。一件具体的事情是,在编写一个简单的语句时,例如:
if(结果.length == 0)
它警告我在与零比较时应该使用 === 而不是 ==。
有人知道这是为什么吗?
最佳答案
在松散类型语言中,使用 ===(严格相等运算符)而不是 ==(相等运算符)通常很有用,因为否则对象的类型将在相等检查期间被强制。
例如,"0" == 0
,和"" == 0
,和[] == 0
.
但是,这些 === 0
都不是.
所以如果 results
恰好是一个属性为空的对象 length
,像这样:
var results = {
length: ""
}
results.length == 0
仍将评估为 true
.
关于javascript - Azure 移动服务 - 服务器端脚本 - 使用 === 与零比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14037901/