从javascript输出中删除undefined

时间:2015-04-11 01:55:12

标签: javascript node.js

在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来自哪里?

2 个答案:

答案 0 :(得分:2)

使用REPL环境时,将评估您输入的表达式并返回其结果。

在这种情况下,结果为undefined。这是REPL的副作用,它不是代码输出的一部分。

答案 1 :(得分:2)

如果您从REPL运行它,undefined是表达式的完成值,即a(4)a不会返回任何内容,因此其返回值为undefined,并且REPL会打印出来。它不会传递给console.log,如果您将其作为独立脚本运行,则不会显示。