gpt4 book ai didi

javascript - JS 严格模式 - 访问 bool 变量

转载 作者:行者123 更新时间:2023-11-30 11:08:33 24 4
gpt4 key购买 nike

所以我查看了整个 Stack Overflow 并发现了类似的问题,但找不到我可以应用到我的问题。我在严格模式下,我定义了一个变量 (loaded = false),并尝试根据它是真还是假来做一个 if/else 语句......在它运行一次之后,我希望它切换到“真”所以它不会再次运行。下面是代码:

"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 会提示,因为您设置它时没有找到它可以找到的目的。

关于javascript - JS 严格模式 - 访问 bool 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54693453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com