【发布时间】:2011-06-11 04:03:03
【问题描述】:
jQuery Core Style Guidelines 提出了两种不同的方法来检查变量是否已定义。
- 全局变量:
typeof variable === "undefined" - 局部变量:
variable === undefined - 属性:
object.prop === undefined
为什么 jQuery 对全局变量使用一种方法,而对局部变量和属性使用另一种方法?
【问题讨论】:
-
我无法回答为什么 JQuery 会同时使用这两种方法的问题,但是 Javascript 确实有一些有趣的怪癖,这意味着这两种方法有细微的不同。大部分时间都没有关系(即,如果您的代码是健全的),但仍然存在差异:请参阅此处查看文章 - wtfjs.com/2010/02/15/undefined-is-mutable
-
正如@Struppi 指出的,jQuery 的最外层函数有一个名为 undefined 的参数。在 jQuery 中,
foo === undefined正在检查 undefined 的本地副本而不是全局 (window.undefined),这可能已被疯狂的代码修改。 undefined 是可变的这一事实绝对值得注意,我很高兴你做到了。 (+1)
标签: javascript jquery undefined