垃圾回收机制
标准浏览器的回收:标记法
古老的IE:引用法
全局变量只有当页面关闭的时候才会被回收,局部变量当使用完以后并且不会继续使用浏览器就会自动回收
闭包
闭包形成条件
1、外部函数嵌套内部函数(ES5)
1、父集作用域嵌套子集作用域(ES6)
2、内部函数使用了外部函数的参数或者变量,称这个内部函数为闭包
闭包的影响
被引用的参数/变量不会被回收
通常的两种用途: 1、内部的函数是一个事件函数
2、把内部函数返回出去
<body>
<p>000</p>
<p>111</p>
<p>222</p>
<p>333</p>
</body>
<script>
//ES5
var aP = document.qureySelectorAll("p");
for(var i=0;i<ap.length;i++){
(function() a(number){
aP[number].onclick = function(){
console.log(number);
}
})(number)
}
//ES6
for(let i=0;i<aP.lenght;i++){
aP[i].onclick = function(){
console.log(i)
};
}
</script>