diff --git a/03-JavaScript进阶/06-作用域和闭包.md b/03-JavaScript进阶/06-作用域和闭包.md index a4f703e..cd77740 100644 --- a/03-JavaScript进阶/06-作用域和闭包.md +++ b/03-JavaScript进阶/06-作用域和闭包.md @@ -741,13 +741,29 @@ function myModule() { 总而言之,你需要它,就是优点;你不需要它,就成了缺点。 -## 内存泄漏内存溢出 +## 内存溢出和内存泄露 + +### 内存溢出 + +**内存溢出**:一种程序运行出现的错误。当程序运行**需要的内存**超过了剩余的内存时, 就出抛出内存溢出的错误。 + +代码举例: + +```javascript + var obj = {}; + for (var i = 0; i < 10000; i++) { + obj[i] = new Array(10000000); //把所有的数组内容都放到obj里保存,导致obj占用了很大的内存空间 + console.log("-----"); + } +``` ### 内存泄漏 -**内存泄漏**:占用的内存没有及时释放。内存泄露积累多了就容易导致内存溢出。 +**内存泄漏**:**占用的内存**没有及时释放。 -常见的内存泄露: +注意,内存泄露的次数积累多了,就容易导致内存溢出。 + +**常见的内存泄露**: - 1.意外的全局变量 @@ -768,7 +784,6 @@ function myModule() { fn(); ``` - 情况2举例: ```javascript @@ -780,43 +795,25 @@ function myModule() { // clearInterval(intervalId); //清理定时器 ``` - 情况3举例: - ```html ``` -### 内存溢出(一种程序运行出现的错误) - -**内存溢出**:当程序运行需要的内存超过了剩余的内存时,就出抛出内存溢出的错误。 - -```javascript - //内存溢出 - var obj = {} - for (var i = 0; i < 10000; i++) { - obj[i] = new Array(10000000); //把所有的数组内容都放到obj里保存,导致obj占用了很大的内存空间 - console.log('-----') - } -``` - - - -