是否有可能以更短更清洁的方式写出来? 我正在从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]
}
答案 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>
。