使用isUndefined有什么好处吗?是否值得额外的函数调用?它不再具有可读性。
答案 0 :(得分:8)
可以隐藏名称undefined
。也就是说,有人可以这样做
var undefined = 5;
并破坏使用x === undefined
的代码(请参阅底部的注释)。要安全地解决这个问题,您可以使用
typeof x === 'undefined'
或
x === void 0
这正是下划线功能的作用。
注意:自ECMAScript 5起,undefined
是只读的。在旧版浏览器中,可以重新定义全局undefined
。即使在较新的浏览器中,undefined
也可以被局部变量遮蔽:
function f() {
var undefined = 5;
return undefined;
}
f() // returns 5