我只是在“ == vs ===”上阅读了这个出色的question和顶部answer。
var x = undefined;
当检查
x
是否真正等于undefined
时,以下两项均有效。if(typeof x == "undefined") {
console.log("typeof x == \"undefined\"");
}
if(x === undefined) {
console.log("x === undefined");
}
输出:
typeof x ==“未定义”
x ===未定义
一种方法比另一种更惯用吗?如果是这样,为什么?
最佳答案
我想说,如果您可以控制x
的可能值范围,那么检查x === undefined
是最常见的方法。例如,如果您有一个返回结果的函数,或者undefined
遇到错误。
否则,您应该使用typeof x == 'undefined'
。
需要注意的是,某些表达式和变量可以是undefined
,因为它们只是未定义,而其他表达式和变量则明确定义为undefined
。
如果您尝试这样做:
var x = undefined;
if(typeof x == "undefined") // This works
if(x === undefined) // This works
if(typeof y == "undefined") // This works
if(y === undefined) // This does not work and throws a ReferenceError
因此,基本上,如果您不必控制variable's range,因为不必实现异常处理,则使用
typeof
更安全,更轻松。关于javascript - 使用`typeof ==`和`===`检查未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20791383/