Javascript 使用setTimeout时,是否必须清除超时?

Javascript 使用setTimeout时,是否必须清除超时?,javascript,Javascript,有人告诉我,当你使用setTimeout时,你必须用cleartimout清除它。在超时时间结束前我能理解,但为什么在超时时间结束后?或者它是不真实的?它不是真的-在超时完成后清除超时没有坏处,但这不是必需的 根据: 如果handle未在调用[clearTimeout]的WindowOrWorkerGlobalScope对象的活动计时器列表中标识条目,则该方法不执行任何操作 换句话说,这是一个不可操作的;不会发生任何事情,也不会抛出任何错误。完成后没有理由清除它。您的朋友可能会被误认为setIn

有人告诉我,当你使用
setTimeout
时,你必须用
cleartimout
清除它。在超时时间结束前我能理解,但为什么在超时时间结束后?或者它是不真实的?

它不是真的-在超时完成后清除超时没有坏处,但这不是必需的

根据:

如果handle未在调用[clearTimeout]的WindowOrWorkerGlobalScope对象的活动计时器列表中标识条目,则该方法不执行任何操作


换句话说,这是一个不可操作的;不会发生任何事情,也不会抛出任何错误。

完成后没有理由清除它。您的朋友可能会被误认为
setInterval

clearTimeout
仅用于取消超时。超时触发后,可以安全地将其单独放置<代码>clearInterval通常更为必要,以防止它无限期地继续。

否,
设置超时
在一次调用后停止运行。但是,要停止
setInterval
,必须使用
clearInterval
。如果您创建了一个无休止的
setTimeout
循环,则可以使用
cleartimout

您实际上不需要使用
clearTimeout
,只有在您希望取消在超时发生之前已设置的超时时才可以使用它

clearInterval
setInterval
一起使用通常更实用,因为
setInterval
通常无限期运行