2022-4-7--setInterval 和 clearInterval 的测试过程

在function前面加括号,以及在最后加双括号是为了能够立刻执行,而不必定义函数名称,再去调用

三次测试最终的成功原因,是需要将 clearInterval拆分一个独立的函数,定义ID调用

成功的代码在最下面~~需要看结果的可以直接到最后

// 第一次测试--失败:当时的心里想法 (额,可能是因为我没有写函数名...我再试一下)
(function () {
    var i = 1
    setInterval(() => {
        i++;
        console.log(i);
        if (i >= 10) {
            window.clearInterval();
            // clearInterval()
            // 后来测试发现加不加 window 都一样无法正常执行,不同大小写也考虑了,比如Window,都一样,根本停不下来...
            console.log('到了');
        }
    }, 300);
})()

// 第二次测试--失败:当时的心里想法 (额,不应该啊,要把函数独立出去么?再试一下吧~)
(function interval() {
    var i = 1
    setInterval(() => {
        i++;
        console.log(i);
        if (i >= 10) {
            window.clearInterval(interval);
            // clearInterval(interval)
            // 后来测试发现加不加 window 都一样无法正常执行,不同大小写也考虑了,比如Window,都一样,根本停不下来...
            console.log('到了');
        }
    }, 300);
})()

 

// 第三次测试--成功,原来需要将重复执行的程序独立的出来,使用单独的ID(Interval)来指定我们的循环语句 setInterval,就可以了
(function () {
    var i = 1
    function main() {
        if (i >= 10) {
            window.clearInterval(interval);
            console.log('到了');
        }
        i++;
        console.log(i);
    }

    Interval = setInterval(main, 300);
})()

猜你喜欢

转载自blog.csdn.net/STR_Liang/article/details/124020357