Javascript 在不使用';不存在?

Javascript 在不使用';不存在?,javascript,Javascript,我正在使用javascript的setInterval()函数检查某些设备的连接状态,该函数每5秒轮询一次。当由于任何原因需要删除或重新启动这些设备时,我将调用clearInterval(),在再次重新启动设备时,先停止该间隔,然后再启动另一个间隔 有时,当最初没有间隔时,会调用clearInterval()函数。例如,我们可以完全禁用状态检查,以便永远不会调用setInterval()。但是,当设备重新启动时,clearInterval()(存在于代码库的另一个区域中)仍会触发。其参数将为nu

我正在使用javascript的
setInterval()
函数检查某些设备的连接状态,该函数每5秒轮询一次。当由于任何原因需要删除或重新启动这些设备时,我将调用
clearInterval()
,在再次重新启动设备时,先停止该间隔,然后再启动另一个间隔

有时,当最初没有间隔时,会调用
clearInterval()
函数。例如,我们可以完全禁用状态检查,以便永远不会调用
setInterval()
。但是,当设备重新启动时,
clearInterval()
(存在于代码库的另一个区域中)仍会触发。其参数将为null或未定义


我的问题是-以这种方式使用
clearInterval()
是否会产生任何后果?您能否继续使用不存在的参数调用函数而不产生不利影响?

正如@CertainPerformance已经提到的,在您的情况下没有任何危害

但有趣的是,这些调用花费了多少时间:

const调用=1000000;
const d1=新日期().getTime();
控制台日志(d1);
for(var i=0;ilog(调用,'invocations take',d2-d1,'millisecs')否。调用
clearInterval
处理可能是或可能不是当前interval ID的内容是一种非常常见的做法。它使代码更易于管理。
clearInterval()
clearInterval(0)
clearInterval('foo')
都可以正常工作。也就是说,干净的代码是成功的——不要依靠不直观的行为来弥补混乱的代码。下一个开发人员将出现,并花费大量时间试图弄清楚您在做什么。@Adam-同意,更干净的代码更好。在这个特殊的例子中,我认为在调用clearInterval()之前检查间隔是否存在实际上增加了总体的心理开销。它还创建了一个额外的代码区域,如果逻辑发生变化,则需要对其进行维护。能够调用clearInterval()而不产生任何不利影响,这正是我所希望的,我很高兴事实如此@你误解了。您不应该首先检查它是否存在,您应该以一种不需要不必要地调用clearInterval的方式编写代码。现在你正在调用clearInterval,“在这里”,如果你知道我的意思的话,当你在创建interval时,“在那里”。这两件事应该更紧密地结合在一起。你把间隔的创建和间隔的清除分散得太远了。@Adam-啊,我明白了。相对而言,这需要一段时间。幸运的是,我的调用量远远不够。