首页 > 其他分享 >JS setInterval

JS setInterval

时间:2023-06-10 18:36:26浏览次数:33  
标签:函数 setInterval 回收 JS 参数 内存 setTimeout

用法

  • 第一个参数是传入的函数
  • 第二个参数是 间隔的以毫秒为单位的时间
  • 后面的是一系列的参数
  • handler之外的参数直接不传
setInterval((...args)=>{
    args.forEach(val=>{
        console.log(val)
    })
}, 1000,"arg0","arg1","arg2")

垃圾回收和 setInterval/setTimeout 回调

当一个函数被传入 setInterval/setTimeout 中时,会为该函数创建一个内部引用并保存在调度程序中。这种方式能够防止垃圾回收器 (GC)将其回收,即使这个函数在外部没有其他引用。

// 在调度程序调用这个函数之前,这个函数将一直存在于内存中
setTimeout(()=>{
  // 函数体
}, 100);
  • 对于 setInterval,传入的函数也是会一直存在于内存中,直到 clearInterval 被调用。
  • 另外,这里还有一个需要注意的副作用,即如果函数引用了外部变量 (闭包),那么只要这个函数还存在,这些外部变量也会随之存在。这可能会导致它们占用比函数本身更多的内存。因此,当我们不再需要这些调度函数时,最好要及时取消它们,即使这些函数的内存占用很小。
  • 如果你的setInterval调用的函数存在报错,一直没有解决,就会导致内存一直增加,此时需要停止当前的setInterval
  • 每次函数执行完之后将会回收非闭包的内存

标签:函数,setInterval,回收,JS,参数,内存,setTimeout
From: https://www.cnblogs.com/sqmw/p/17471718.html

相关文章

  • NodeJS
    请求报文和请求对象请求报文和请求对象是相关但不完全相同的概念。请求报文是在HTTP协议中定义的一种格式化的数据结构,用于客户端向服务器发送请求。它包含了请求行、请求头和请求体等部分,用于描述请求的相关信息和携带数据。请求对象是在服务器端处理请求时,根据请求报文......
  • JS-数据类型和类型转换
    一.数据类型计算机程序可以处理大量的数据,为什么要给数据分类?更加充分和高效的利用内存;也更加方便程序员的使用数据。数据类型分为两大类:基本数据类型和引用数据类型1.原始类型:number数字型string字符串型boolean布尔型undefined未定义型null空类型2.引用......
  • #yyds干货盘点#【yyds干货盘点】5. Vue.js 事件处理
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • NOR闪存MT28EW01GABA1LJS-0SIT、MT28EW01GABA1HJS-0SIT(1Gbit)
    产品详情:MT28EW01GABA1Gbit并行NOR闪存器件具有较高的密度、就地执行(XiP)性能和架构灵活性,可满足汽车、消费类和移动产品的设计要求。该器件非常适合用于GPS/导航、汽车后视摄像头、手机、智能手机和电子阅读器。该器件还具有较宽的温度范围、经过验证的可靠性追踪记录,并可长期......
  • js笔记_方法
    方法就是把函数放在对象的里面,对象只有两个东西:属性和方法varli={name:'li',birth:2000,age:function(){varnow=new.Date().getFullYear();returnnow-this.birth;}}//属性li.name//方法,一定带()li.age()......
  • js笔记_变量的作用域
    在JavaScript中,var定义变量实际是有作用域的。假设在函数体中声明,则在函数体外不可以使用,(非要想实现的话,后面可以研究一下闭包)functionli(){varx=1;x=x+1;//2}x=x+2;//uncaughtReferenceError:xisnotdefined如果两个函数使用了相同的变量名,只要在函数内......
  • js笔记_函数
    函数定义方式一绝对值函数functionabs(x){returnx;}else{return-x;}一旦执行到return代表函数结束,返回结果。如果没有执行return,函数执行完也会返回结果,结果就是undefined定义方式二varabs=function(x){if(x>=0)returnx;}else{return-x;}}function(x){.......
  • js原始坐标转百度坐标(GPS坐标转百度坐标)(火星坐标转百度坐标)
    wgs84togcj02tobd09(lng,lat){constxPI=3.14159265358979324*3000.0/180.0constPI=3.1415926535897932384626consta=6378245.0constee=0.00669342162296594323//WGS84转GCj02letdlat=transformlat(lng-105.0,lat-35.......
  • js层
    browseCourse.js$(document).ready(function(){$("#addCourse").click(function(){$("#popup").css("display","block")$("#overlay").css("display","block")})......
  • JS-变量、常量和数组
    一.变量变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据),这个符号就是变量,这个具体的值称为字面量。<script>//x符号代表了5这个数值x=5//y符号代表了6这个数值y=6......