update:内存泄露
This commit is contained in:
		
							parent
							
								
									0d676fe666
								
							
						
					
					
						commit
						765da5e00c
					
				@ -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.意外的全局变量
 | 
					- 1.意外的全局变量
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -768,7 +784,6 @@ function myModule() {
 | 
				
			|||||||
    fn();
 | 
					    fn();
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
情况2举例:
 | 
					情况2举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```javascript
 | 
					```javascript
 | 
				
			||||||
@ -780,43 +795,25 @@ function myModule() {
 | 
				
			|||||||
    // clearInterval(intervalId);  //清理定时器
 | 
					    // clearInterval(intervalId);  //清理定时器
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
情况3举例:
 | 
					情况3举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
```html
 | 
					```html
 | 
				
			||||||
<script type="text/javascript">
 | 
					<script type="text/javascript">
 | 
				
			||||||
  function fn1() {
 | 
					  function fn1() {
 | 
				
			||||||
    var arr = new Array[100000];   //这个数组占用了很大的内存空间
 | 
					    var a = 4;
 | 
				
			||||||
    function fn2() {
 | 
					    function fn2() {
 | 
				
			||||||
      console.log(arr.length)
 | 
					      console.log(++a)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return fn2
 | 
					    return fn2
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  var f = fn1()
 | 
					  var f = fn1()
 | 
				
			||||||
  f()
 | 
					  f()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  f = null //让内部函数成为垃圾对象-->回收闭包
 | 
					  // f = null //让内部函数成为垃圾对象-->回收闭包
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 内存溢出(一种程序运行出现的错误)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
**内存溢出**:当程序运行需要的内存超过了剩余的内存时,就出抛出内存溢出的错误。
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```javascript
 | 
					 | 
				
			||||||
  //内存溢出
 | 
					 | 
				
			||||||
  var obj = {}
 | 
					 | 
				
			||||||
  for (var i = 0; i < 10000; i++) {
 | 
					 | 
				
			||||||
    obj[i] = new Array(10000000);   //把所有的数组内容都放到obj里保存,导致obj占用了很大的内存空间
 | 
					 | 
				
			||||||
    console.log('-----')
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user