如果我们有一个变量相等的数字,那么如果我想通过使用变量而不是数字每秒减少这个数字。
var x = setInterval(function() {
var n = 50;
console.log(n--);
1000});
答案 0 :(得分:5)
您可以使用IIFE关闭该值的闭包。优点是使用局部变量而不会污染全局空间。
var x = setInterval(function(n) {
return function() {
console.log(n--);
};
}(100), 1000);
答案 1 :(得分:3)
这是一个不需要全局变量而是使用IIFE:
CREATE TABLE mytable (
id int,
related int
);
INSERT into mytable VALUES(1, NULL);
INSERT into mytable VALUES(2, 1);
INSERT into mytable VALUES(3, 1);
答案 2 :(得分:2)
结帐:当x等于零时停止
var x = 100;
var handler = setInterval(function(){
x--;
console.log(x);
if(x === 0)
clearInterval(handler)
} , 1000)
答案 3 :(得分:2)
您的代码问题是,您将--
放在之后,并且应该将其放在(--n)
之前,并且还已经在setInterval循环中声明了var n = 50
,每次都以此方式它执行的n变量始终为50,则应将此变量放在代码的开头。
var n = 50;
var x = setInterval(function() {
console.log(--n);
}, 1000);