闭包
相当于是函数嵌套函数,内部的函数可以去访问到外部函数的变量,内部的函数返回会在外面被执行。
必报的优点:
1.变量可以长期驻扎在内存中。
2.避免全局变量的污染。
3.私有成员的存在。
闭包的缺点
增大内存的使用量,使用不当会造成内存的泄露
要求每隔1秒打印1-10
// setTimeout是异步执行,异步队列
// 先执行同步在执行异步
for (var i = 1; i <= 10; i++) {
(function (i) {
setTimeout(function () {
console.log('i的值', i)
}, 1000 * i);
})(i)
}
```l
也可以用最简单方法let来写
注意如果用var来写的话就输出11,let是块级作用域,所以输出1-10
```bash
for (let i = 1; i <= 10; i++) {
setTimeout(function () {
console.log('i的值', i)
}, 1000*i);
}