解决方法
您可以使用这两种方法来检查值是否未定义.但是,您需要注意的细微差别.
var x; // ... x === undefined; // true
只有在声明变量但未定义变量时,这才会正常工作,即具有未定义的值,这意味着代码中的某个地方有var x,但它从未被赋值.所以它的定义是不确定的.
但是如果变量没有用var关键字声明上面的代码会抛出引用错误:
x === undefined // ReferenceError: x is not defined
在这种情况下,比较类型更可靠:
typeof x == 'undefined' // true
这将在两种情况下都正常工作:如果变量从未被赋值,并且其值实际上是未定义的.