Javascript中“if typeof undefined”的简写

Shorthand for "if typeof undefined" in Javascript?

本文关键字:undefined typeof if Javascript      更新时间:2023-09-26

是否可以以更简短,更简洁的方式编写此内容?我正在从 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