簡體   English   中英

Javascript中“if typeof undefined”的簡寫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM