JS严格模式 - 访问布尔变量



所以我看了整个堆栈溢出,发现了类似的问题,但找不到我可以应用于我的问题。我处于严格的模式,并且我定义了一个变量(加载= false),并尝试根据其真实或错误进行IF/else语句...运行一次,我希望它切换到" true",所以它不会再运行。以下是代码:

"use strict"
let loaded = false;
if (loaded === false) {
  //do an action
  loaded = true;
}

,但我在'loaded = true'上遇到了一个错误,上面写着"分配的值从未使用"。我假设这是一个范围的问题,但我不确定该怎么做?

谢谢!

*更多细节:这是我正在使用的代码。显然,由于使用了其他变量,因此有些不可读取,但这也许会有所帮助。

let loaded = false;
  if (loaded === false) {
    // animate swipe on map load
    this.view.when().then((() => {
    setTimeout(() => { // delay 1500ms for the map to load a bit
      $(".movable").animate({left: "50%"},
        {
         duration: 1200,
         easing: 'easeInOutCubic',
         step: (function (now, fx) {
         this._setOption('swipeX', layerViewContainer.element.width * now / 100);
        }).bind(this)
      });
     }, 1800);
    }).bind(this));
   loaded = true;
  }

所以您知道,我正在尝试将变量设置为True,以便它们在页面上执行操作时不会再运行...出于某种原因更改页面上的某些内容将使刷卡恢复(我不想发生)。

这不是范围的问题。

  1. 首先,您将其设置为false
  2. 然后您的 if读取值,以便使用该值。
  3. 然后,您为其分配一个新值(true)。
  4. 然后你到达结尾。

您的代码更改后永远不会读取loaded,因此Linter抱怨是因为您毫无目的可以找到它。

最新更新