0
const timeoutID = setTimeout(() => {
 console.log('After 5 seconds');
}, 5000);
console.log(timeoutID); // 1

为什么当我在控制台中打印一个包含 setTimeout 方法的变量时它等于一个数字?

4

1 回答 1

0

为什么当我在控制台中打印一个包含 setTimeout 方法的变量时它等于一个数字?

您打印setTimeout分配给该变量并表示超时 ID 以供以后使用的返回值

来自MDN

返回的 timeoutID 是一个正整数值,用于标识调用 setTimeout() 创建的计时器;可以将此值传递给 clearTimeout() 以取消超时。

了解 setTimeout() 和 setInterval() 共享相同的 ID 池可能会有所帮助,并且 clearTimeout() 和 clearInterval() 在技术上可以互换使用。但是,为了清楚起见,您应该尝试始终匹配它们以避免在维护代码时造成混淆。

保证超时 ID 永远不会被后续调用同一对象(窗口或工作程序)上的 setTimeout() 或 setInterval() 重用。但是,不同的对象使用不同的 ID 池。

于 2020-11-18T21:00:10.467 回答