js代码,关于setInterval无法停止的问题!

2024-12-03 16:01:35
推荐回答(2个)
回答1:

那是因为,js在,var是声明变量

但有点不同的是,看是在哪里声明,

如果,var是在函数方法function之内声明的,那变量只作用于该函数本身

如果是在函数方法之外声明的,那就是全局变量,无论在函数内函数外都能起作用(当然,在声明之前的代码是作用不到的)

根据这个原理

clearInterval(s) 这个s根本就不存在!

改正如下:

哦,你要有个错误

就是在被循环的函数内声明变量b,并且赋值为0;

那么,这个函数每运行一次,无论b的值是多少,是不是用于都会被归为0呢?

是不是永远的是小于6呢?

既然是小于6,那有怎么会停止呢?

回答2:

第一个问题如第一位热心者回答的那样,作用域问题
第二个问题,var b声明应该放到函数外面去,不然每循环一次,就重新声明b=0一次,导致b永远不会小于6
第三个问题b=b++,意思是右边的b先把自身赋值给左边,然后自加。所以你可以写成b++或者b=b+1;
正确实现方法楼上已经实现,楼主可以研究下