检查变量是否未定义的最佳实践

Don*_*uwe 7 javascript variables undefined

关于未定义变量,我在条件方面遇到了一些问题.总结一下,检查变量是否未定义的最佳方法是什么?

我主要是在苦苦挣扎

x === undefined
Run Code Online (Sandbox Code Playgroud)

typeof x === 'undefined'
Run Code Online (Sandbox Code Playgroud)

dfs*_*fsq 9

您可以使用两种方法来检查值是否为undefined.但是,您需要注意的细微差别.

第一种方法使用严格比较运算符===来比较undefined 类型:

var x;
// ...

x === undefined; // true
Run Code Online (Sandbox Code Playgroud)

只有在声明变量但未定义变量(即具有undefined值)时,这将按预期工作,这意味着您var x在代码中有某处,但从未为其赋值.所以这是undefined定义.

但是如果变量使用var上面的关键字声明代码将抛出引用错误:

x === undefined // ReferenceError: x is not defined 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,typeof比较更可靠:

typeof x == 'undefined' // true
Run Code Online (Sandbox Code Playgroud)

在两种情况下都可以正常工作:如果变量从未被赋值,并且其值实际上是undefined.