伪造var实现let块级作用域-爱代码爱编程
var与let的区别就在于
var 所声明的变量可以看做成在全局变量
而let所声明的变量适用于块级作用域
console.log(a);
var a = 10
打印的结果为
undefined
//实现过程
var a;
console.log(a)//此时a未赋值所以等于undefined
a = 10
例如:
for (var index = 0; index < 10; index++) {
setTimeout(() => {
console.log(index)
},1000)
}
打印结果为
10
而使用let则依次执行
要使用var用作于let的作用域可以使用匿名函数
for (var index = 0; index < 10; index++) {
(function name(params) {
setTimeout(() => {
console.log(params);
}, 1000)
})(index)
}
此时打印的结果与let的结果一样