使用clearInterval方法实现的是将区间变量引用设置为null,而不是
What does using clearInterval method accomplish that setting an interval variable reference to null does not?
我在JavaScript服务文件中有一个重置方法,可以将服务中的所有变量重置为null。有些变量包含间隔计时器引用。我注意到使用reset方法似乎会取消间隔(事实上不应该是这样,但它确实出现在我的Angular应用程序中)。
我的问题是,将间隔引用设置为null是否与使用clearInterval(name)正式清除间隔具有相同的效果?我应该知道有什么技术上的差异吗?
var myInterval = window.setInterval(function () { console.log('interval fired'); }, 500);
// Are these two equivalent?
myInterval = null;
clearInterval(myInterval);
我注意到规范中似乎有一个WindowTimers接口,这就是clearInterval方法的来源。我的猜测是,调用clearInterval会从某种列表或数组中删除命名引用。如果我将计时器设置为null,它是否会作为一个无法执行的null对象留在WindowTimers列表中?
间隔计时器"句柄",或者你想怎么称呼它,只是一个数字。它向运行时标识计时器,但在其他方面没有什么特别之处。变量中的值不会使变量比任何其他值都更特别,因此将变量重置为null
对计时器没有任何影响。
您可以打开浏览器开发人员控制台并键入以下内容:
console.log(setTimeout(function(){}, 1))
你会看到一个数字。把它运行几次,你会看到一系列不断增加的数字。
将myInterval变量设置为null不会停止间隔。如果你在Chrome的开发者工具中尝试这些代码,你可以看到这一点。只有在调用clearInterval之后,console.log调用才会停止。
相关文章:
- 数组在递归方法中设置为null
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- jQuery Modal Popup-回发后输入类型设置为null
- 无法设置属性'innerHTML'在javascript中为null
- JQuery在设置另一个值之前将附加值设置为null
- 如果为null,则设置javascript变量的值
- 为什么设置 element.className = null 会导致 class=“null”
- 未捕获的类型错误:无法设置属性'onclick'为null.已尝试window.onload
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- 即使在 DOM 加载后也无法设置 null 的 .innerHTML
- 通过JavaScript设置null值
- 未捕获的类型错误:将 innerhtml 设置为数组中的字符串时,无法设置 null 的属性 'innerHTM
- HTML 错误无法设置 null 属性(匿名函数)
- 如果一个组不匹配,如何设置 NULL
- 未捕获的类型错误:无法设置 null.active 的属性“类名”
- 未捕获的类型错误:无法设置null的属性
- 无法设置null错误的innerHTML.尽管存在html ID
- 在javascript中设置null变量值为默认值
- 不能读取property 'removeChild'使用JSP设置null
- JavaScript 错误 msg : 未捕获的类型错误: 无法设置 null 的属性 'onclick'