【问题标题】:Removing undefined from javascript output [duplicate]从javascript输出中删除未定义[重复]
【发布时间】:2015-04-11 09:58:45
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    当使用REPL 环境时,您输入的表达式将被计算并返回其结果。

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

    【讨论】:

    • 知道如何从 REPL 中删除它吗?
    • @SurenderThakran 你不能,也没有理由想要
    • 这实际上是有人问我的面试问题,所以想知道。我试过: for(var i=0;i
    【解决方案2】:

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

    【讨论】:

    • 幻象控制台undefined握拳
    • @minitech okz,但是我如何从 REPL 中删除它?
    猜你喜欢
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2018-07-30
    • 2019-10-22
    • 1970-01-01
    • 2021-05-04
    相关资源
    最近更新 更多