我正在实现一个简单的countDown函数,给定一个以秒为单位的num,倒数num,num-1,...,0和console.log
s " Ring Ring Ring !! !"
使用num
方法内置的JavaScript 0
为setInterval
时。我的实现问题是变量num
正在打印为undefined
变量。
我现在已经看了一个小时,无法解决这个问题。有人可以帮忙吗?谢谢!
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);
}
答案 0 :(得分:3)
你在setInterval函数中num
只删除那个
function countDown(num) {
var timer = num*1000;
var intervalId = setInterval(function(){
if(timer !== 0){
console.log("Timer: ", num);
num--;
timer -= 1000;
} else if(timer == 0){
console.log("Ring Ring Ring!!!");
clearInterval(intervalId);
}
}, 1000);
}
countDown(20);
答案 1 :(得分:2)
从此处删除参数num
:
setInterval(function(num));
^
该参数隐藏了function countDown(num) {...}
function countDown(num) {
var timer = num * 1000;
var intervalId = setInterval(function() {
if (timer !== 0) {
console.log("Timer: ", num);
num--;
timer -= 1000;
} else if (timer == 0) {
console.log("Ring Ring Ring!!!");
clearInterval(intervalId);
}
}, 1000);
}
countDown(1);
答案 2 :(得分:1)
您无需将num
作为参数传递给匿名函数
所以下面的代码应该有效: -
function countDown(num) {
var timer = num*1000;
var intervalId = setInterval(function(){ //removed num argument
if(timer !== 0){
console.log("Timer: ", num);
num--;
timer -= 1000;
} else if(timer == 0){
console.log("Ring Ring Ring!!!");
clearInterval(intervalId);
}
}, 1000);
}