06- 垃圾回收与setTimeout和setinterval

363 阅读1分钟

一、垃圾回收与setTimeout和setinterval

浏览器内核里的V8引擎执行的JS , 不针对于node的V8引擎中执行的JS

  1. js创建的所有Object(包含定时器) 存储与当前窗口的栈空间

  2. V8引擎有自动回收垃圾并释放当前窗口的栈内存的机制但这个自动回收仅限于当变量的指针指向null时,才将变量不再使用的对象从栈空间及时回收,否则它会在窗口对象销毁时才回收。

  3. interval对象或timeout对象,这两种定时器对象只会随着窗口对象的销毁才从栈空间回收。

    无法通过更改变 /量的指针指向null的方式通知垃圾回收机自动回收。

    如果打算在窗口对象关闭之前销毁窗口对象的栈内存中的interval对象只能通过interval的销毁函数销毁它

    interval的销毁函数为clearInterval

    timeout的销毁函数为clearTimeout

  4. 浏览器的窗口存储于浏览器的栈空间,每打开一个浏览器窗口,浏览器就会创建一个window对象。

    每个window对象都是一个窗口模型,窗口模型中集成了许多窗口模型自带的函数和属性