settimeout 函数是否被视为整数 JavaScript

Is a settimeout function considered an interger JavaScript

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

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

如果我将这些确切的代码行粘贴到我的程序中,控制台只会读取一个整数(在我的例子中是数字 2)。

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

这是预期的行为吗?

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

"clearTimeout(timeOut);" 

清除失败,警报仍然触发。但是我在我的代码中找不到任何会导致这种情况的东西,如果我更改变量名称以避免和可能的冲突我错过了它仍然是相同的行为。

所以我的问题是 setTimeout 函数 return 默认情况下是一个整数,我可以搜索哪些可能的东西会触发这样的行为。

是的,上面代码段中的 timeOut 是一个数字 - 超时事件的 ID,以便您可以在需要时清除它。 (服务器端不一样,这里用node.js setTimeout returns一个对象,但是效果和用法是一样的。)

此代码将清除超时:

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

如果你的超时没有被清除,那一定是你的id不对,或者你清除的太晚了。