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.意外的全局变量
 | 
			
		||||
 | 
			
		||||
@ -768,7 +784,6 @@ function myModule() {
 | 
			
		||||
    fn();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
情况2举例:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
@ -780,43 +795,25 @@ function myModule() {
 | 
			
		||||
    // clearInterval(intervalId);  //清理定时器
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
情况3举例:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
  function fn1() {
 | 
			
		||||
    var arr = new Array[100000];   //这个数组占用了很大的内存空间
 | 
			
		||||
    var a = 4;
 | 
			
		||||
    function fn2() {
 | 
			
		||||
      console.log(arr.length)
 | 
			
		||||
      console.log(++a)
 | 
			
		||||
    }
 | 
			
		||||
    return fn2
 | 
			
		||||
  }
 | 
			
		||||
  var f = fn1()
 | 
			
		||||
  f()
 | 
			
		||||
 | 
			
		||||
  f = null //让内部函数成为垃圾对象-->回收闭包
 | 
			
		||||
  // f = null //让内部函数成为垃圾对象-->回收闭包
 | 
			
		||||
</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