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

标签 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;
      }
    });
  }
});

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

最佳答案

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

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 查找对前一个正则表达式的所有引用。

关于javascript - 如何检查 JavaScript 中的变量是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35306632/

相关文章:

javascript - i18next 翻译中的 HTML 标签

javascript - 为什么当 module.exports 被分配一个对象时这是一个空对象?

javascript - 使用turbolinks时如何在jquery调用后更新vuejs组件数据

javascript - 如何将表单数据存储在ajax变量中?

javascript - 如果DOM中只有一个,类的第n个子(1)是否与类本身具有相同的结果

javascript - 从 div 复制时防止复制 html/css 样式

javascript - 如何使用 jquery(或 javascript)在单击按钮时移动 div

javascript - 为什么 jQuery cookie 实际上没有设置 cookie?

javascript - require.js 与 jquery ui,找不到 jquery

javascript - Puppeteer 脚本可以在本地运行,但不能在 EC2 AWS 上运行