如何检查 JavaScript 中的变量是否为空?

新手上路,请多包涵
var characterName = document.getElementById("pilotName").value;
var characterID = 0;
var charSecStatus = 0;
var corpName = " ";
var allianceName = " ";

//callback
makeRequest('https://api.eveonline.com/eve/CharacterID.xml.aspx?names=' + characterName, function() {
  if (xmlhttp.status == OK_RESPONSE) {

    //read character info
    characterID = xmlhttp.responseXML.getElementsByTagName("row")[0].getAttribute("characterID");

    makeRequest('https://api.eveonline.com/eve/CharacterInfo.xml.aspx?characterID=' + characterID, function() {

      if (xmlhttp.status == OK_RESPONSE) {

        //read character info
        characterID = xmlhttp.responseXML.getElementsByTagName("characterID")[0].innerHTML;
        charSecStatus = xmlhttp.responseXML.getElementsByTagName("securityStatus")[0].innerHTML;
        corpName = xmlhttp.responseXML.getElementsByTagName("corporation")[0].innerHTML;
        allianceName = (xmlhttp.responseXML.getElementsByTagName("alliance")[0] || {
          innerHTML: ""
        }).innerHTML;
      }
    });
  }
});

(部分代码如图,请不要使用括号)我正在尝试检查“联盟”变量是否为空,因为某些“公司”不在“联盟”中,如果它试图显示一个空的,这将是网站上的严重错误变量,那么有没有一种方法可以在从 XML 树中检索 allianceName 并将其设置为类似“No Alliance”(如果为空)后检查它是否为空?谢谢

原文由 timoxazero 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 223
1 个回答

您在这里声明了真正的变量

var corpName = " ";
var allianceName = " "

在 JavaScript 中,带有空白字符的字符串的值实际上是真值。虽然上面的值看起来确实是空的,但事实并非如此。自己试试看。

 Boolean(" ");
=> true

要将这些变量设置为空,您需要在声明时不使用空格字符

var corpName = "";
var allianceName = "";

有了这个之后,有两种方法可以检查变量是否为空

if (!corpName || !corpName.length)

假设您不小心包含了空白字符,有几种方法可以解决这个问题。在这些情况下我们可以修改这些字符串。

 Boolean(" ".trim());
=> false

在上面的示例中, trim() 函数用于从字符串中删除空白字符。

您还可以在字符串中搜索非空白字符

/\S/.test(" ")
=> false

\S 修饰符查找所有非空白字符。

或者,您也可以使用替换功能

Boolean(" ".replace(/\s/g, ''));

全局标志 g 查找对前一个正则表达式的所有引用。

原文由 Richard Hamilton 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题