1

在普通的 JavaScript 中,我可以检查

if (i == undefined)

or

if (i === undefined)

或“类型”。

但是,在 Facebook 中,它将api_key附加为 undefined 中的前缀。

也就是说,它会变成

if (a12345_i == a12345_undefined)

这不是未定义的。

那么,我该怎么做才能确定变量是否未定义?


好吧,感谢所有答案,但我认为我应该强调一件事。在正常的 JavaScript 环境中检测 null 值没有问题。我面临的问题是当它使用 Facebook 作为FBML应用程序时。

4

3 回答 3

1

typeof(var) 返回一个字符串,你应该检查:

typeof(var) == 'undefined'
于 2010-03-25T14:58:31.997 回答
0

尝试这个 ...

if (i == null) or if (i === null)
if (i == '') or if (i === '')
于 2010-03-25T04:19:44.477 回答
0

您可以使用x == null,它将检查nullor undefined。但是,您所做的检查应该有效。虽然看起来a12345_undefined不像,但确实如此。例如,这也可以:undefined

var notDefined;
if (x === notDefined) { // ...

只要您从不将任何内容分配给变量undefined(变为a12345_undefined),您就可以了。 undefined只是 JavaScript 中的一个普通变量,它只是以undefinedvalue 开头。您可以使用任何没有值的变量作为undefined.

希望这是有道理的。

于 2010-03-25T04:41:23.830 回答