if语句条件检查!= "undefined"失败

If-statement condition checking on != "undefined" fails

本文关键字:quot undefined 失败 语句 条件 检查 if      更新时间:2023-09-26

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

但显然我的if(e.Property != null || e.Property != "undefined" || e.Property == "")不工作时,Propertyundefined。大多数情况下,e.Email是未定义的。因此,我的代码仍然插入html + "<br />部分,而不是跳过这一部分。当我alert() e.Email时,它返回undefined,如果是这种情况,它应该捕获并跳过。

我试着写if(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;
    }
};

您想要检查!== undefined

if(myvar !== undefined) { 
    //DO SOMETHING 
}

如果你想要一个更简洁的版本,你可以使用:

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"
if(e) //this would be shorter
if(e != undefined)
//
if(typeof(e) != 'undefined')

undefined是一个变量名,不是字符串。

不需要加引号

如果它的值是字符串"undefined"

删除"

最好通过e.length检查,因为JavaScript中变量类型不准确

我也会使用length函数,如果数组或对象为空,则日志长度将为0.0,即

if(e.length == 0){
  //then do something or nothing
}
else {
  //Do somthing
}