我想检查变量是否已定义。例如,以下抛出未定义的错误
alert( x );
我怎样才能捕捉到这个错误?
在 JavaScript 中,null是一个对象。不存在的事物还有另一个价值,undefined. DOMnull在几乎所有无法在文档中找到某些结构的情况下都会返回,但在 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,因为可以undefined像变量一样重新分配。旧方式如下所示:
if (typeof yourvar !== 'undefined') // Any scope
undefined可重新分配的问题已在 2009 年发布的 ECMAScript 5 中得到修复。您现在可以安全地使用===和!==测试,undefined而无需使用一段typeof时间undefined以来一直是只读的。
===
!==
如果你想知道一个成员是否独立存在但不关心它的值是什么:
if ('membername' in object) // With inheritance if (object.hasOwnProperty('membername')) // Without inheritance
如果您想知道变量是否为真:
if (yourvar)
资源