JavaScript 全局布尔变量将自身转换为字符串

JavaScript global boolean Variable convert itself to string

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

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

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
}

我错了还是我自己写了一个函数来每次将布尔变量转换为 "real" 布尔变量?我自己测试过,这显示了布尔数据类型...

这很好用...

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

对于布尔值,请使用来自 MDN 的这种方式 doc

var test = new Boolean(false); 

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

更改 var 的名称(或范围),一切都很好