Javascript切换按钮未通过if条件

时间:2015-08-06 10:01:15

标签: javascript

伙计我做错了什么?在我的电脑上这段代码:simple toggle显示我假= =当我第一次调用该函数时为真。当状态为假时为什么会继续?

  var status = false; 

  function toggleStatus() {
  var message = "status:" + status;
  if (status === false) {
      message += "===FALSE";
      status=true;
  } else {
      message += "===TRUE";
      status=false;
  }
  alert(message);
  }

1 个答案:

答案 0 :(得分:0)

这是因为已经定义了window.status(这是一个字符串,用于浏览器状态栏中的文本)。

因为您没有从代码中保护全局命名空间,所以状态变量被定义为窗口对象上的全局。据推测,浏览器将全力以赴。

然而,这应该有效https://jsfiddle.net/72rf8g8p/

(function(){

var status = false; 

  function toggleStatus() {
  var message = "status:" + status;
  if (status === false) {
      message += "===FALSE";
      status=true;
  } else {
      message += "===TRUE";
      status=false;
  }
  alert(message);
  }

toggleStatus();

})();

您也可以简单地将变量名称更改为其他名称,例如myStatus:

var myStatus= false; 

  function toggleStatus() {
  var message = "myStatus:" + myStatus;
  if (myStatus=== false) {
      message += "===FALSE";
      myStatus=true;
  } else {
      message += "===TRUE";
      myStatus=false;
  }
  alert(message);
  }