【发布时间】:2016-09-06 03:26:42
【问题描述】:
基于this answer 我知道我可以使用 in 运算符检查属性是否存在。所以我在很多代码中看到了它是常用的,例如:
if ("gapi" in window) {
gapi.login(...);
}
但是这样做不是更好吗?
if (window.gapi) {
gapi.login(...);
}
我知道的唯一区别是,如果变量存在但其值为 undefined、false、0、null 或其他计算结果为 false 的值,则第二个变量将返回 false;第一个会返回 true,对吧?
那么,还有其他区别吗?我应该使用哪一个?
【问题讨论】:
-
对于后者,如果
window.gapi为0、false、null等呢? -
@Marty 是的,这就是我在问题前的最后一段中所说的
-
据我了解,您的最后一段严格提到了
undefined。 -
@Marty 你是对的,我心中有这些价值观,但没有写下所有这些价值观。我更新了问题。谢谢
-
您的问题现在很不寻常,因为它的内容类似于“除了这些重要的差异列表之外,这两件事之间有什么区别?”。
标签: javascript variables object