如何检查一个不是

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

alert( x );

我怎样才能捕捉到这个错误?


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

其次,不,没有直接的等价物。 如果你真的想特别检查null ,那么:

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

如果你想检查一个变量是否存在,那只能用try / catch来完成,因为typeof会处理一个未声明的变量和一个声明为undefined值的变量等价。

但是,要检查一个变量是否被声明并且不是undefined

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

如果您知道该变量存在,并且想要检查是否存在任何值:

if (yourvar !== undefined)

如果你想知道一个成员是否存在独立但不关心它的价值是什么:

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

如果你想知道一个变量是否是真的:

if (yourvar)

资源


真正测试变量是否undefined的唯一方法是执行以下操作。 请记住,undefined是JavaScript中的一个对象。

if (typeof someVar === 'undefined') {
  // Your variable is undefined
}

这个线程中的其他一些解决方案会引导你相信一个变量是未定义的,即使它已被定义(例如,值为NULL或0)。


从技术上讲,正确的解决方案是(我相信):

typeof x === "undefined"

你有时可能会懒惰和使用

x == null

但是它允许一个未定义的变量x和一个包含null的变量x返回true。

链接地址: http://www.djcxy.com/p/83617.html

上一篇: How to check a not

下一篇: need to know if part of div is visible