[英]Shorthand for “if typeof undefined” in 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]
}
多年來它一直沒有意義使用這個結構(除非你不知道變量 ,而不是值 ,是否未定義)。 undefined
現在只讀。
簡單地使用
if (entry[i].getElementsByTagName("url")[0].childNodes[0] === undefined) {
在幾乎所有情況下, typeof x === "undefined"
都是一種不好的做法 。
在DOM元素的特定情況下,您也可以簡單地使用
if (!entry[i].getElementsByTagName("url")[0].childNodes[0]) {
因為你不能有一個假的節點,當然,當目標是應用默認值時,只需使用
var foo = entry[i].getElementsByTagName("url")[0].childNodes[0] || 'baar';
(請注意,此測試僅在最后[0]
之前的所有部分都存在時才有效,使用querySelector
或DOM選擇API(如jQuery)通常很方便,使所有內容都不那么冗長)。
var foo = entry[i].getElementsByTagName("url")[0].childNodes[0] || 'baar'
你可以這樣寫。
var ele = entry[i].getElementsByTagName("url");
if (ele && ele[0].childNodes[0]) {
var foo = 'baar'
} else {
//code
}
沒有必要明確檢查undefined
。 undefined
被評估為false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.