定时器 setInterval 有一个有名函数 fn1,setInterval(fn1, 500)与 setInterval(fn1(), 500)有什么区别?

简介: 定时器 setInterval 有一个有名函数 fn1,setInterval(fn1, 500)与 setInterval(fn1(), 500)有什么区别?

setInterval 是 JavaScript 中用于定时执行函数的方法。它的基本语法是 setInterval(function, delay),其中 function 是你想要定期执行的函数,delay 是每次执行之间的延迟时间(以毫秒为单位)。



对于 setInterval(fn1, 500) 和 setInterval(fn1(), 500),两者之间的主要区别在于函数调用的方式。

  1. setInterval(fn1, 500)
  • 在这种情况下,fn1 是一个函数引用,它告诉 setInterval 每隔 500 毫秒调用一次 fn1。每次调用时,它都会执行 fn1 函数的新实例。
  • 这是正确的方式,因为它允许 setInterval 周期性地调用 fn1 函数,而不需要立即执行它。
  1. setInterval(fn1(), 500)
  • 在这种情况下,fn1() 会立即执行,并将 fn1 函数的返回值(如果有的话)设置为 setInterval 的回调。
  • 这通常不是你想要的,因为这意味着 fn1 函数会在设置定时器时立即执行一次,而不是每隔 500 毫秒执行一次。
  • 如果 fn1 没有返回值(即它是 void),则 setInterval 将无法执行任何内容,因此定时器将不会工作。



因此,当你想要使用 setInterval 时,应该使用 setInterval(fn1, 500) 的形式,以确保 fn1 函数被周期性地调用,而不是立即执行。

相关文章
|
5月前
|
JavaScript 前端开发 安全
JavaScript基础-定时器:setTimeout, setInterval
【6月更文挑战第13天】JavaScript中的`setTimeout`和`setInterval`是异步编程的关键工具,用于按计划执行代码。`setTimeout`在延迟后执行一次,而`setInterval`则周期性执行。常见问题包括忘记清除定时器导致内存泄漏,递归使用`setTimeout`可能引发无限递归,以及字符串代码执行的安全隐患。解决方法包括使用`clearTimeout`和`clearInterval`,设置递归终止条件,以及优先使用函数表达式。理解定时器的非精确性并采用错误处理策略也是实践中的重要技巧。通过示例展示了如何延迟显示消息和周期性打印计数。
89 2
|
11月前
|
JavaScript 前端开发
window.setTimeout() 和window.setInterval() 的用法与区别
window.setTimeout() 和window.setInterval() 的用法与区别
75 0
|
JavaScript 前端开发
js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
写在前面: 在js应用中,定时器的作用就是可以设定当到达一个时间来执行一个函数,或者每隔几秒重复执行某段函数。这里面涉及到了三个函数方法:setInterval()、setTimeout()、clearInterval(),本文将围绕这三种函数的用法,来实现定时器的功能,需要的朋友可以过来参考下,喜欢的可以点波赞,或者关注一下本人,希望对大家有所帮助。 定时器的应用需求: 1.设定一个时间,当时间到达的时候执行函数————比如:倒计时跳转页面等等。 2.每隔一段时间重复执行某段函数————比如抢票软件,比如设定500毫秒就重复刷新一次页面等等。 倒计时跳转实现demo:
636 0
js 定时器用法详解——setTimeout()、setInterval()、clearTimeout()、clearInterval()
|
JavaScript
js中两种定时器,setTimeout和setInterval的区别
js中两种定时器,setTimeout和setInterval的区别
83 0
相比 setInterval(),更推荐 setTimeout()
相比 setInterval(),更推荐 setTimeout()
92 0
|
Web App开发 JavaScript 前端开发
Javascript定时器(三)——setTimeout(func, 0)
setTimeout(func, 0)可以使用在很多地方,拆分循环、模拟事件捕获、页面渲染等
Javascript定时器(三)——setTimeout(func, 0)
间隔调用方法(setInterval与setTimeout)
js中实现函数间隔调用,延时调用的方法。 setInterval(方法名,间隔时间)方法可按照指定的周期(以毫秒计)来调用函数或计算表达式 方法会不停地调用函数。 setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。
13476 0
|
JavaScript 前端开发 Java