内存溢出与内存泄漏

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>02_内存溢出与内存泄露</title>
 6 </head>
 7 <body>
 8 
 9 <!--
10 1. 内存溢出
11   * 一种程序运行出现的错误
12   * 当程序运行需要的内存超过了剩余的内存时, 就出抛出内存溢出的错误
13 2. 内存泄露
14   * 占用的内存没有及时释放
15   * 内存泄露积累多了就容易导致内存溢出
16   * 常见的内存泄露:
17     * 意外的全局变量
18     * 没有及时清理的计时器或回调函数
19     * 闭包
20 -->
21 
22 <script type="text/javascript">
23   // 1. 内存溢出
24   var obj = {}
25   for (var i = 0; i < 10000; i++) {
26     obj[i] = new Array(10000000)
27     console.log('-----')
28   }
29 
30   // 2. 内存泄露
31     // 意外的全局变量
32   function fn() {
33     a = new Array(10000000)
34     console.log(a)
35   }
36   fn()
37 
38    // 没有及时清理的计时器或回调函数
39   var intervalId = setInterval(function () { //启动循环定时器后不清理
40     console.log('----')
41   }, 1000)
42 
43   // clearInterval(intervalId)
44 
45     // 闭包
46   function fn1() {
47     var a = 4
48     function fn2() {
49       console.log(++a)
50     }
51     return fn2
52   }
53   var f = fn1()
54   f()
55 
56   // f = null
57 
58 </script>
59 </body>
60 </html>
原文地址:https://www.cnblogs.com/fsg6/p/12791917.html