var array = [];
for(var i = 0; i <3; i++) {
array.push(() => i);
}
var newArray = array.map(el => el());
console.log(newArray);
答案:3 3 3
解析:执行到var newArray = array.map(el => el());时候,i在当前作用域的值均变为3
let result = []
let total = 0
function loop(a) {
let i = 0
for (; i < 3; i++) {
result.push(() => {
total += a * i
console.log(total)
})
}
}
loop(1) //undefined
result[0]() //3
result[1]()//6
result[2]()//9
下面代码中 a 在什么情况下会打印 1?
var a = ?;
if(a == 1 && a == 2 && a == 3){
console.log(1);
}
var a = {
i:1,
toString:function(){
return a.i++;
}
}
var a = 10;
(function () {
console.log(a)
a = 5
console.log(window.a)
var a = 20;
console.log(a)
})()
undefined 10 20