Javascript中“if typeof undefined”的简写?

时间:2016-01-29 11:12:10

标签: javascript

是否有可能以更短更清洁的方式写出来? 我正在从XML中读取它,有时URL值不存在。

if (typeof(entry[i].getElementsByTagName("url")[0].childNodes[0]) !== "undefined") { 
    var foo = 'baar' 
} else { 
    var foo = entry[i].getElementsByTagName("url")[0].childNodes[0] 
}

3 个答案:

答案 0 :(得分:2)

多年来,使用这种结构已经没有意义了(除非你不知道变量,而不是值< / em>,未定义)。 undefined现在只读。

只需使用

if (entry[i].getElementsByTagName("url")[0].childNodes[0] === undefined) {

几乎在所有情况下,typeof x === "undefined"都是不良做法

在DOM元素的特定情况下,您也可以使用

if (!entry[i].getElementsByTagName("url")[0].childNodes[0]) {

因为您无法拥有falsy节点,当然,当目标是应用默认值时,只需使用

var foo = entry[i].getElementsByTagName("url")[0].childNodes[0] || 'baar';

(请注意,此测试仅在最后[0]之前的所有部分都存在时才有效,使用querySelector或DOM选择API(如jQuery)通常很方便一切都不那么冗长。)

答案 1 :(得分:1)

$_SERVER['REQUEST_URI']

答案 2 :(得分:0)

你可以这样写。

undefined

无需为undefined明确核对。false被评估为<items> <item name="name1"/> <item name="name2"/> <item name="name3"/> </items>