我正在编写脚本,并且有两个非常相似但给出不同结果的布尔语句,我不明白他们为什么会相互冲突。布尔语句不在javascript中评估
我的功能看起来是这样的:
SCRIPT:
(function() {
window.onload = function() {
let stopped = true;
let button = document.getElementById("start-stop");
if (stopped) {
setInterval(function() {
console.log("The timer is working.");
}, 1000);
}
button.addEventListener('click', function(){
if (stopped) {
stopped = false;
console.log(stopped);
} else {
stopped = true;
console.log(stopped);
}
});
}
}
}).call(this);
的基本思想是,当我按下按钮的setInterval
功能停止,但它一直在持续,即使if/else
功能开关停止到false
。
例如,我的console.log看起来是这样的:
即stopped = false
,但setInterval不终止。
为什么这不正确评估?
“停止”变为false不会停止'setInterval'。为此,你必须使用'clearInterval'。 –