【问题标题】:JavaScript global boolean Variable convert itself to stringJavaScript 全局布尔变量将自身转换为字符串
【发布时间】:2015-09-26 00:02:06
【问题描述】:

首先我是 Javascript 新手,所以如果我问这样一个微不足道的问题,请不要讨厌我。

我在 Google 上搜索了几个小时,但我找不到我的问题的解决方案。我已经声明了一个全局变量“状态”,这是错误的。但是如果我检查函数中的数据类型,它会显示“字符串”,这总是正确的,所以我的脚本根本不起作用。

var status = false;

function slide(element) {
    if (status) {
        slideUp(element);
    } else {
        slideDown(element);
    }
}

function slideDown(element) {
    status = true;
    // Testprint todo remove
    alert('Status is ' + status + ' and is type: ' + typeof status);
    // todo
}

function slideUp(element) {
    status = false;
    // Testprint todo remove
    alert('Status is ' + status + ' and is type: ' + typeof status);
    // todo
}

我错了还是我自己写了一个函数来每次将布尔变量转换为“真正的”布尔变量?我已经自己测试过了,这显示了布尔数据类型...

这很好用...

var test = false;
myTestFunc();

myTestFunc() {
    if(!test) {
      test = true;
      alert('Test is false');
    } else {
      test = false;
      alert('Test is true');
    }
    
    alert('Test contains: ' + test + ' and has the type: ' + typeof test);
}

我明白了,Javascript 似乎随机声明变量。有没有办法将我的变量设置为布尔数据类型?

是否有机会强制初始化为布尔值,如 int varname

【问题讨论】:

  • alertconsole.log 将所有内容类型转换为 string
  • 文档写入还说“状态为真并且类型为:字符串”......而且我的 var 每次都是真的我在浏览器的调试器中测试了它。即使我不使用“警报”

标签: javascript string types initialization boolean


【解决方案1】:

问题是 window.status - 见https://developer.mozilla.org/en-US/docs/Web/API/Window/status

更改 var 的名称(或范围),一切顺利

【讨论】:

    【解决方案2】:

    对于布尔使用这种方式来自 MDN doc

    var test = new Boolean(false); 
    

    【讨论】:

    • 我也发现了这个。它什么也没有改变。它仍然是一个字符串(即使没有警报)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 2018-09-07
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多