在javascript或nodejs或任何其他javascript环境中运行以下脚本:
undefined
0
1
2
3
4
脚本:
for(var i=0;i<5;i++){
var a = function (i) {
setTimeout(function () {
console.log(i);
},i*1000);
};
a(i);
}
undefined
来自哪里?
答案 0 :(得分:2)
使用REPL环境时,将评估您输入的表达式并返回其结果。
在这种情况下,结果为undefined
。这是REPL的副作用,它不是代码输出的一部分。
答案 1 :(得分:2)
如果您从REPL运行它,undefined
是表达式的完成值,即a(4)
。 a
不会返回任何内容,因此其返回值为undefined
,并且REPL会打印出来。它不会传递给console.log
,如果您将其作为独立脚本运行,则不会显示。