我是Java Script的新手,发现了一种名为“立即函数”的函数。我们为什么使用:
for,while,if else语句不创建新的变量范围但forEach循环确实创建了一个新的范围,这是非常令人困惑的。它背后有什么具体原因吗?以下是示例: -
var foo = 123;
if (true) {
var foo = 456;// updates the value of global 'foo'
}
console.log(foo); // 456;
let foo2 = 1111111;
var array = new Array(5).fill(5);
array.forEach(function () {
let foo2 = 222//creates new variable
// foo2 = 222//updates global variable
});
console.log('test' + foo2);
答案 0 :(得分:1)
创建新范围的不是forEach
,而是function
是它的参数。 function
始终创建自己的this
。