日期:2021/12/04 分类:性能优化 题目:什么情况下会导致内存泄漏,该如何解决
- 全局变量
在JavaScript中,如果我们访问未生命的变量,该变量会在全局对象中创建,在浏览器环境中,这就意味着
function foo() { bar = 'some text' }
相当于
function foo() { window.bar = 'some text' }
在这就创建了一个无意义的全局变量,该变量不会被回收。
还有就是意外的全局this
,当this
指向全局window
的时候, 就会在全局创建一个变量,这个时候可以通过'use strict'
来开启严格模式,方式意外创建全局变量。
- 闭包
闭包是一个内部函数,可以访问外部(封闭)函数的变量。可能会导致我们使用完闭包,却没有对其进行释放,导致该内部函数无法被回收