【问题标题】:Please explain what is happening in this piece of code in chrome console? [duplicate]请解释一下 chrome 控制台中这段代码发生了什么? [复制]
【发布时间】:2017-07-14 11:38:40
【问题描述】:
Javascript代码:
for(var i=0; i<5; i++){
console.log(i);
setTimeout(function(){
console.log(" magic "+ i)
}, 2000);
};
输出:
-
25 这个数字是什么意思?
-
i 如何递增到5 而i++ 在4 之后无法访问?
【问题讨论】:
标签:
javascript
google-chrome-console
【解决方案1】:
您从以下位置获得数字 0 到 4:
console.log(i);
因为你执行了 5 次“魔法 5”
console.log(" magic "+ i)
在你将i 数到 5 之后的 5 次。
更有趣的部分是另一个数字。这是最后一个setTimeout(...) 的结果。每次在控制台中执行 Javascript 时,您都会得到代码的返回值(console.log("foo") 将产生 undefined)。在您的代码中直接执行的最后一条语句是 setTimeout,它返回一个 ID。