我正在編寫腳本,並且有兩個非常相似但給出不同結果的布爾語句,我不明白他們爲什麼會相互衝突。布爾語句不在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'。 –