关于未定义变量的条件我遇到了一些问题.总结一下,检查变量是否未定义的最佳方法是什么?
我主要是在苦苦挣扎
x === undefined
和
typeof x === 'undefined'
解决方法
您可以使用这两种方法来检查值是否未定义.但是,您需要注意的细微差别.
第一种方法使用严格比较===运算符来比较未定义的type:
var x; // ... x === undefined; // true
只有在声明变量但未定义变量时,这才会正常工作,即具有未定义的值,这意味着代码中的某个地方有var x,但它从未被赋值.所以它的定义是不确定的.
但是如果变量没有用var关键字声明上面的代码会抛出引用错误:
x === undefined // ReferenceError: x is not defined
在这种情况下,比较类型更可靠:
typeof x == 'undefined' // true
这将在两种情况下都正常工作:如果变量从未被赋值,并且其值实际上是未定义的.