在javascript中检查undefined--我应该使用typeof吗?

lar*_*ryq 10 javascript undefined

关于如何在javascript中检查变量是否未定义,我有点困惑.我一直在这样做:

myVar === undefined;
Run Code Online (Sandbox Code Playgroud)

但是在所有情况下使用typeof更好吗?

typeof myVar === undefined;
Run Code Online (Sandbox Code Playgroud)

那个undefinedvs 的使用怎么样"undefined",我也看到了?

Jon*_*Jon 19

这是最好的检查方式 - 完全万无一失:

typeof myVar === "undefined"
Run Code Online (Sandbox Code Playgroud)

这没关系,但如果有人无意中覆盖了全局undefined值,它可能会失败:

myVar === undefined;
Run Code Online (Sandbox Code Playgroud)

必须要说的是,ECMAScript 5指定它undefined是只读的,因此在任何符合的浏览器中,上述内容始终是安全的.

这将无法工作,因为它最终比较"undefined" === undefined(不同类型):

typeof myVar === undefined;
Run Code Online (Sandbox Code Playgroud)