检查变量是否未定义或不存在

时间:2010-12-27 19:02:03

标签: javascript

  

可能重复:
  How can I check whether a variable is defined in JavaScript?

假设我们有一段这样的代码。如果变量确实存在与否,如果其值可能未定义,将如何检查?

var a = { foo: 'bar' }
a['foo'] = undefined;
// now a['foo'] returns undefined, as it does exist and contains undefined as its value
delete a['foo']
// now a['foo'] still returns undefined, but it doesn't exist

感谢。

3 个答案:

答案 0 :(得分:4)

为此,您使用in运算符。

var a = {'foo': undefined};
'foo' in a // returns true

delete a.foo;
'foo' in a // returns false

或者您可以使用Object.prototype.hasOwnProperty

var a = {'foo': undefined};
a.hasOwnProperty('foo') // returns true

delete a.foo;
a.hasOwnProperty('foo') // returns false

答案 1 :(得分:1)

设置['foo'] = undefined等同于删除['foo']

如果在将其设置为undefined之后打印['foo']的值,您将看到它返回并清空变量/ struct。

如果您尝试将['foo']设置为带有“undefined”的字符串,则可以使用“typeof”函数来检查它是否确实未定义或是否为字符串。

编辑:

你可以在

中使用'foo'来检查它是否存在

//中的'foo'在将其设置为undefined后返回true //中的'foo'在删除后返回false。

答案 2 :(得分:-1)

您可以通过将变量传递给if语句来检查变量是否存在:

if (a['foo'])
    alert("a['foo'] does exist.");