我想检查变量是否已定义。例如,以下引发未定义的错误
alert( x );
如何捕获此错误?
在JavaScript中,null是一个对象。不存在的事物还有另一个价值,undefined。DOM null在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中undefined是所使用的值。
null
undefined
第二,不,没有直接对等的内容。如果您确实要专门检查null,请执行以下操作:
if (yourvar === null) // Does not execute if yourvar is `undefined`
如果要检查变量是否存在,那只能用try/ 来完成catch,因为typeof它将未声明的变量和声明为的变量undefined等效。
try
catch
typeof
但是,检查是否声明一个变量 而 不是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)