【发布时间】:2021-12-23 18:43:54
【问题描述】:
我很抱歉这个幼稚的问题。我有这个简单的计时器,我不能百分百确定这里出了什么问题。我想显示一个像 7 : 10 : 20 这样的数字。
let running = false,
showClock = false,
time
let h, m, s
function timer() {
s = s + 1
m = Math.floor(s / 60)
h = Math.floor(h / 60)
time = `${h} : ${m} : ${s}`
console.log(time)
}
function runClock() {
running = !running
showClock = !showClock
let id
if (running) {
id = setInterval(timer, 1000)
} else {
clearInterval(id)
}
}
我将 runClockfunction 附加到 onClick 方法并希望记录时间。但它只记录 NaN : NaN : NaN ,其次它没有停止。有人知道我做错了什么吗?
【问题讨论】:
-
你对
s = undefined + 1;有什么期望? -
我应该在
timer函数中初始化s吗? -
你应该在某个地方初始化它。在您的代码中
s未初始化。你可以用s = (s ?? 0) + 1;修复它 -
不,它不会初始化任何东西。它声明了3个变量,所有3个变量都包含
undefined。