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。这是一个无限循环