📅  最后修改于: 2023-12-03 15:26:37.964000             🧑  作者: Mango
这是一段 JavaScript 代码,其目的是通过 for 循环打印三次 i 变量的值。
通过使用 const 声明了一个名为 log 的函数,这个函数在调用时会在控制台输出变量 i 的值。
但是,让我们来看一下这段代码的输出,会发现打印的都是数字 3,而不是我们期望的 0、1、2。这是因为在 for 循环内部,const 声明的 log 函数会捕获 i 的引用。当 i 在循环中递增时,每个 log 函数都会引用最终的 i 值,即 3。
如果想要输出正确的结果,可以将 const 声明的 log 函数改成一个使用 let 声明的变量,这样每个循环迭代都会有一个新的 i 值被绑定到该变量上。修改后的代码片段如下所示:
let i;
for (i = 0; i < 3; i++) {
let log = () => {
console.log(i);
};
log();
}
输出结果将会是:
0
1
2
这样,我们就可以正确地输出每个循环迭代中 i 的值了。