在普通的JavaScript中,我可以检查
if (i == undefined)
or
if (i === undefined)
或“typeof”。
然而,在Facebook中,它将附加api_key
作为未定义的前缀。
也就是说,它会变成
if (a12345_i == a12345_undefined)
未定义。
那么,我该怎么做才能找出变量是否未定义?
好的,感谢所有答案,但我想我应该强调一件事。在普通的JavaScript环境中检测null值没有问题。我面临的一个问题是Facebook作为FBML应用程序。
答案 0 :(得分:1)
typeof(var)返回一个字符串,你应该检查:
typeof(var) == 'undefined'
答案 1 :(得分:0)
试试这个......
if (i == null) or if (i === null)
if (i == '') or if (i === '')
答案 2 :(得分:0)
您可以使用x == null
来检查null
或undefined
。但是,你做的检查应该有效。虽然a12345_undefined
看起来不像undefined
那样,但它确实如此。例如,这也可以起作用:
var notDefined;
if (x === notDefined) { // ...
只要您从未将任何内容分配给变量undefined
(变为a12345_undefined
),您应该没问题。 undefined
只是JavaScript中的常规变量,它只是以undefined
值开头。您可以使用任何没有值的变量作为undefined
的比较。
希望这是有道理的。