Javascript 我的间歇时间怎么了?
我正试图根据一个条件清除间隔。怎么了Javascript 我的间歇时间怎么了?,javascript,Javascript,我正试图根据一个条件清除间隔。怎么了 function Dog() { var x = 0; var s = setInterval(function y() { console.log(x++); if (x == 0) clearInterval(s); }, 1000); return ''; }; Dog(); console.logx++;//第一次调用时,X将设置为1 如果x==0 ClearInterval;//从未
function Dog() {
var x = 0;
var s = setInterval(function y() {
console.log(x++);
if (x == 0) clearInterval(s);
}, 1000);
return '';
};
Dog();
console.logx++;//第一次调用时,X将设置为1 如果x==0 ClearInterval;//从未执行过。。。直到x的溢出从0开始 在函数的第1行,您可以增加它。所以是1 在第二行,您测试它是否为0。事实并非如此 然后是间歇时间。2不是0。3不是0。等等
该条件从未满足。您的x永远不会为0
function Dog() {
var x = 0;
var s = setInterval(function y() {
console.log(x++);
if (x == 1) clearInterval(s);
}, 1000);
return '';
};
Dog();
提醒一下:
x++:返回实际x和之后的增量
var x = 0;
console.log(x++); // returns 0
console.log(x); // returns 1
++x:递增并返回x
var x = 0;
console.log(++x); // returns 1
console.log(x); // returns 1
请清楚地解释实际问题是什么。怎么了人们不会发现问题并提供解决方案。在fx==0语句中,x永远不会是0,因此永远不会调用ClearInterval。这是一个无限循环