Javascript setInterval回调中未定义的变量
我正在实现一个简单的倒计时函数,在给定秒数的情况下,倒计时num,num-1,…,0和Javascript setInterval回调中未定义的变量,javascript,asynchronous,Javascript,Asynchronous,我正在实现一个简单的倒计时函数,在给定秒数的情况下,倒计时num,num-1,…,0和console.logs“Ring Ring!!!” 当num为0时,使用JavaScript内置的setInterval方法。我的实现的问题是变量num作为未定义的变量打印 我已经看了一个小时了,还没弄清楚。有人能帮忙吗?谢谢 function countDown(num) { var timer = num * 1000; var intervalId = setInterval(funct
console.log
s“Ring Ring!!!”
当num
为0
时,使用JavaScript内置的setInterval
方法。我的实现的问题是变量num
作为未定义的变量打印
我已经看了一个小时了,还没弄清楚。有人能帮忙吗?谢谢
function countDown(num) {
var timer = num * 1000;
var intervalId = setInterval(function(num) {
if (timer !== 0) {
console.log("Timer: ", num);
num--;
timer -= 1000;
} else if (timer == 0) {
console.log("Ring Ring Ring!!!");
clearInterval(intervalId);
}
}, 1000);
}
从此处删除参数num
:
setInterval(function(num));
^
该参数正在对函数倒计时(num){…}
函数倒计时(num){
变量计时器=num*1000;
var intervalId=setInterval(函数(){
如果(计时器!==0){
log(“计时器:”,num);
num--;
定时器-=1000;
}否则如果(计时器==0){
console.log(“铃声!!!”);
clearInterval(intervalId);
}
}, 1000);
}
倒计时(1)
您在setInterval函数中设置了num
,只需将其删除即可
函数倒计时(num){
变量计时器=num*1000;
var intervalId=setInterval(函数(){
如果(计时器!==0){
log(“计时器:”,num);
num--;
定时器-=1000;
}否则如果(计时器==0){
console.log(“铃声!!!”);
clearInterval(intervalId);
}
}, 1000);
}
倒计时(20)
无需将num
作为参数传递给匿名函数
因此,下面的代码应该可以工作:-
函数倒计时(num){
变量计时器=num*1000;
var intervalId=setInterval(函数(){//删除了num参数
如果(计时器!==0){
log(“计时器:”,num);
num--;
定时器-=1000;
}否则如果(计时器==0){
console.log(“铃声!!!”);
clearInterval(intervalId);
}
}, 1000);
}