【发布时间】:2018-02-26 13:57:44
【问题描述】:
我正在 Lynda.com 上进行 JavaScript 基础培训,我很难理解一个概念的逻辑。
我在下面有这段代码,它通过使用 setInterval 设置间隔来设置计时器以每千分之一秒运行一次。
var timerRunning = false;
function start() {
let textEnteredLength = testArea.value.length;
if (textEnteredLength === 0 && !timerRunning) { //textEnteredLength is 0 and timerRunning is false
timerRunning = true;
interval = setInterval(runTimer, 10); //runTimer every 10 milliseconds (thousandth of a second)
}
}
基本上,我很困惑,因为在教程中,timerRunning 是一个全局变量,在代码顶部 (var timerRunning = false;) 设置为 false
因此,!timerRunning 不就意味着timerRunning 是真的吗?或者,是因为在逻辑上!timerRunning 意味着不是timerRunning AKA false,无论全局变量最初设置为什么?
编辑:
没关系...我不知何故误解了代码的逻辑,显然我需要多睡觉。出于某种原因,我在想var timerRunning = false 在 if 语句中设置 timerRunning 的值,因此,!timerRunning 会是真的,而timerRunning 真的只是意味着假,我们继续到 if 语句的内部,因为if 语句为真。
感谢您的帮助。
【问题讨论】:
-
clearInterval 也许?
-
如果 timerRunning 为真,!timerRunning 为假...
-
问题是关于
timerRunning变量的逻辑,我认为标题需要更改,因为它具有误导性。我不知道最好的标题是什么..
标签: javascript