一尘不染

如何在JavaScript中检查未定义的变量

javascript

我想检查变量是否已定义。例如,以下引发未定义的错误

alert( x );

如何捕获此错误?


阅读 336

收藏
2020-04-25

共1个答案

一尘不染

在JavaScript中,null是一个对象。不存在的事物还有另一个价值,undefined。DOM
null在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中undefined是所使用的值。

第二,不,没有直接对等的内容。如果您确实要专门检查null,请执行以下操作:

if (yourvar === null) // Does not execute if yourvar is `undefined`

如果要检查变量是否存在,那只能用try/ 来完成catch,因为typeof它将未声明的变量和声明为的变量undefined等效。

但是,检查是否声明一个变量 不是undefined

if (yourvar !== undefined) // Any scope

以前,必须使用typeof运算符来安全地检查未定义的内容,因为有可能undefined像变量一样重新分配。原来的样子是这样的:

if (typeof yourvar !== 'undefined') // Any scope

undefined可重新分配的问题已在2009年发布的ECMAScript
5中得到修复。现在,您可以安全地使用===!==进行测试,undefined而无需使用typeofas,undefined因为一段时间以来一直是只读的。

如果您想知道成员是否独立存在,但不在乎其值是什么:

if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance

如果您想知道变量是否为真:

if (yourvar)
2020-04-25