Skip to content

Latest commit

 

History

History

01_什么情况下会导致内存泄漏,该如何解决

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

日期:2021/12/04 分类:性能优化 题目:什么情况下会导致内存泄漏,该如何解决

  1. 全局变量

在JavaScript中,如果我们访问未生命的变量,该变量会在全局对象中创建,在浏览器环境中,这就意味着

function foo() { bar = 'some text' }

相当于

function foo() { window.bar = 'some text' }

在这就创建了一个无意义的全局变量,该变量不会被回收。

还有就是意外的全局this,当this指向全局window的时候, 就会在全局创建一个变量,这个时候可以通过'use strict'来开启严格模式,方式意外创建全局变量。

  1. 闭包

闭包是一个内部函数,可以访问外部(封闭)函数的变量。可能会导致我们使用完闭包,却没有对其进行释放,导致该内部函数无法被回收