JS Strict Mode - Доступ к логической переменной
Поэтому я просмотрел все переполнения стека и нашел похожие вопросы, но не смог найти ни одного, который мог бы обратиться к моему. Я в строгом режиме, и я определил переменную (загружен = ложь), и пытаюсь сделать оператор 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
, - Тогда ваш
if
читает значение, поэтому значение используется. - Затем вы назначаете ему новое значение (
true
). - Тогда вы доберетесь до конца.
Ваш код никогда не читает loaded
после того, как вы измените его, поэтому линтер жалуется, потому что вы установили его без цели, которую он может найти.