我正在Lynda.com上完成JavaScript基础培训,我很难围绕一个概念的逻辑。
我有下面的代码,通过使用setInterval设置间隔,将计时器设置为每千分之一秒运行一次。
$test = "0.45*100";
$value=eval("return ($test);");
echo $value;
基本上,我很困惑,因为在教程中,timerRunning是一个在代码顶部设置为false的全局变量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)
}
}
因此,(var timerRunning = false;)
是否意味着!timerRunning
是真的?或者,是因为逻辑上timerRunning
表示不是!timerRunning
AKA是假的,无论全局变量最初设置的是什么?
修改
没关系......我不知何故误解了代码的逻辑,显然我需要睡得更多。出于某种原因,我在考虑timerRunning
在if语句中设置timerRunning的值,因此,var timerRunning = false
为真,当真正!timerRunning
实际上只是意味着错误时,我们继续在if语句中,因为if语句为true。
感谢您的帮助。
答案 0 :(得分:0)
首次运行start
时,timerRunning
为false
,意味着!timerRunning
为true
。
结果是if
- 块仅运行一次,第一次调用start
。
答案 1 :(得分:0)
!timerRunning
与false == timerRunning
类似。这是每种编程语言AFAIK。在此处阅读更多相关信息:What does an exclamation mark before a function really mean
var timerRunning = false;
console.log('false ... ' + timerRunning);
console.log('true cause it is false ... ' + !timerRunning);