Javascript 如果语句条件检查打开!=&引用;“未定义”;失败

Javascript 如果语句条件检查打开!=&引用;“未定义”;失败,javascript,jquery,undefined,Javascript,Jquery,Undefined,我正在尝试为谷歌地图信息窗口生成一些HTML内容。我有7个值,如果它们不等于null、undefined或“”(空字符串),则应该显示这些值 但显然,当属性未定义时,我的if(e.Property!=null | | e.Property!=“未定义”| | e.Property==“未定义”不起作用。大多数情况下,e.Email是未定义的。因此,我的代码没有跳过该部分,而是插入了html+“部分。当我alert()电子邮件返回undefined时,它应该捕获并跳过该部分 我试过写如果(type

我正在尝试为谷歌地图信息窗口生成一些HTML内容。我有7个值,如果它们不等于null、undefined或“”(空字符串),则应该显示这些值

但显然,当
属性
未定义时,我的
if(e.Property!=null | | e.Property!=“未定义”| | e.Property==“未定义”
不起作用。大多数情况下,
e.Email
是未定义的。因此,我的代码没有跳过该部分,而是插入了
html+“
部分。当我
alert()
电子邮件返回
undefined
时,它应该捕获并跳过该部分

我试过写
如果(typeof e.Property!=null | | typeof e.Property!=“undefined”| | typeof e.Property==”)
,但没有什么区别

// 'e ' is JSON object
var generateHTML = {
    init: function(e) {
        if (e != null || e != "undefined"){
            generateHTML.check(e);
        }
    },
    check: function (e) {
        if(e.Title != null || e.Title != "undefined" || e.Title == ""){
            html = html + "<b>"+e.Title+"</b>";
        }
        if(e.Address != null || e.Address != "undefined" || e.Address == ""){
            html = html +"<br />"+ e.Address;
        }
        if(e.Zipcode != null || e.Zipcode != "undefined" || e.Zipcode == ""){
            html = html +"<br />"+ e.Zipcode+", ";
        }
        if(e.City != null || e.City != "undefined" || e.City == ""){
            html = html + e.City;
        }
        if(e.Phone != null || e.Phone != "undefined" || e.Phone == ""){
            html = html +"<br />"+ e.Phone;
        }
        if(e.Email != null || e.Email != "undefined" || e.Email == ""){
            html = html +"<br />"+ e.Email;
        }
        if(e.WebAddress != null || e.WebAddress != "undefined" || e.WebAddress == ""){
            html = html +"<br />"+ e.WebAddress;
        }
        return html;
    }
};
/“e”是JSON对象
var generateHTML={
init:函数(e){
如果(e!=null | | e!=“未定义”){
生成HTML检查(e);
}
},
检查:功能(e){
如果(e.Title!=null | | e.Title!=“未定义”| | e.Title==”){
html=html+“”+e.Title+“”;
}
如果(e.Address!=null | | e.Address!=“未定义”| | e.Address==”){
html=html+“
”+e.地址; } 如果(e.Zipcode!=null | | e.Zipcode!=“未定义”| | e.Zipcode==”){ html=html+“
”+e.Zipcode+“,”; } 如果(e.City!=null | | e.City!=“未定义”| | e.City==”){ html=html+e.城市; } 如果(e.Phone!=null | | e.Phone!=“未定义”| | e.Phone==”){ html=html+“
”+e.电话; } 如果(e.Email!=null | | e.Email!=“未定义”| | e.Email==”){ html=html+“
”+e.电子邮件; } 如果(e.WebAddress!=null | | e.WebAddress!=“未定义”| | e.WebAddress==”){ html=html+“
”+e.WebAddress; } 返回html; } };
要检查!==未定义

e、 g


undefined
是变量名,而不是字符串


您不需要在它周围加引号。

您正在检查它,就好像它的值是字符串“undefined”


删除“

”如果您想要更简捷的版本,只需使用:

if (e.Title) {
    // add to HTML
}
if (e.Address) {
    // add to HTML
}

您可能想考虑将HTML构建为数组,然后加入到最后以避免创建多个字符串,例如

var html = [];
html.push("FirstName");
html.push("<br />");
html.push("LastName");
html.push("<br />");
html.push("Number");
var output = html.join(""); // "FirstName<br />LastName<br />Number"
var html=[];
html.push(“名字”);
html.push(“
”); html.push(“LastName”); html.push(“
”); html.push(“数字”); var output=html.join(“”;//“FirstName
LastName
Number”
最好通过e.length检查一些东西,因为变量类型在JavaScript中不准确

我也会使用length函数,如果数组或对象为空,记录的长度将为0.0,即

if(e.length==0){
//那就做点什么或什么也不做
}
否则{
//干坏事

}
为什么要将
未定义的
放入字符串中?可能存在重复的
var html = [];
html.push("FirstName");
html.push("<br />");
html.push("LastName");
html.push("<br />");
html.push("Number");
var output = html.join(""); // "FirstName<br />LastName<br />Number"
if(e) //this would be shorter

if(e != undefined)
//
if(typeof(e) != 'undefined')