是一个被视为interger JavaScript的settimeout函数



我正在尝试调试一个程序,我想知道在下面的代码中应该考虑什么"setTimeout"函数。

var timeOut = setTimeout(function(){
alert("hi");
}, 2000);
// console.log(timeOut);

如果我把这些精确的代码行粘贴到我的程序中,控制台只读取一个整数(在我的情况下是数字2(。

如果我把代码放在for循环中,"timeOut"变量递增,从2开始,然后是3,依此类推

这是预期的行为吗?

我想调试的主要事情是,如果我试图像那样清除超时

"clearTimeout(timeOut);" 

它未能清除,警报仍然响起。然而,我在代码中找不到任何会导致这种情况的东西,如果我更改变量名以避免我错过的可能的冲突,那仍然是相同的行为。

所以我的问题是,setTimeout函数是否默认返回一个整数,以及我可以搜索哪些可能触发这种行为的东西。

是的,上面代码段中的timeOut是一个数字——超时事件的id,如果你想清除它,你可以清除它

此代码将清除超时:

var timeOut = setTimeout(function(){
alert("hi");
}, 2000);
clearTimeout(timeOut);

如果您的超时没有被清除,那一定是您的id错误,或者清除得太晚了。

最新更新