代码之家  ›  专栏  ›  技术社区  ›  Albizia

安慰日志不打印任何内容,但返回未定义的内容

  •  2
  • Albizia  · 技术社区  · 9 年前

    console.log("Hello\tWorld")
    undefined
    

    无论我在控制台中键入什么。日志根本无法打印

    console.log(document)
    undefined
    

    这只发生在这一特定页面上: https://www.duolingo.com/practice

    这是一件事吗?阻止类似控制台的功能。登录你的页面,阻止它打印任何结果?

    6 回复  |  直到 9 年前
        1
  •  2
  •   ritsu    7 年前

    如果您键入 console 在控制台中,您将看到如下内容:

    log: ƒ ()
        ...
        [[FunctionLocation]]: app-676b15de.js:formatted:54288
    

    表示控制台。log()函数被重写 app-676b15de.js

    window.console && fY.forEach(function(e) {
        var t = console[e];
        console[e] = function() {
            for (var e = [], n = 0; n < arguments.length; n++)
                e[n] = arguments[n];
            (k() || window.verbose) && Function.prototype.apply.apply(t, [console, e])
        }
    })
    

    最后一行阻止执行控制台功能,除非 k() window.verbose 真的

    这意味着您可以有效地重新启用控制台。log(),将其添加到脚本顶部:

    window.verbose = true;
    

    console.log()
    console.error()
    

    console.info()
    console.warn()
    

        2
  •  1
  •   BenM    9 年前

    不,没有。 console.log() 是一个 void spec here ).

    因此,当你在Chrome的控制台中运行它时,字符串(即。 Hello\tWorld undefined 安慰日志()

    你可以在下面的屏幕截图中看到Chrome正在正确登录 Hello Word 到控制台,然后返回

    enter image description here

        3
  •  0
  •   Ankush Malik    9 年前

    “undefined”只是您调用的函数的返回。 它打印字符串,但由于它不返回任何内容,因此控制台闪烁未定义。

    function abc(){return 2}
    

    现在,当您调用abc()

        4
  •  0
  •   G. Rodriguez    8 年前

    我在Chrome上也有同样的问题。然后我注意到,在Filter旁边,就在控制台提示符上方,它说“全部隐藏”,这会抑制控制台打印的消息。log()。我将其改为“默认”,问题就消失了。这与返回类型无关,如前所述,返回类型为void。这只是对输出进行Chrome过滤。

        5
  •  0
  •   Albizia    8 年前

    我用过 console.info console.log

    后者至今仍没有在该特定页面上返回任何内容。

        6
  •  0
  •   PJL    6 年前

    尝试还原默认设置并重新加载控制台#文档将重新出现在控制台窗口的第一行,您已全部设置好。

    设置(>);首选项>选项卡底部的按钮“恢复默认值并重新加载”。