【问题标题】:What is the equivalent of Java's System.out.println() in Javascript?Javascript 中 Java 的 System.out.println() 的等价物是什么?
【发布时间】:2012-02-02 17:27:01
【问题描述】:

我正在为 Javascript 代码编写一些测试,并且在编译过程中遇到错误时需要转储一些消息。

在 Javascript 中是否有与 Java 的 System.out.println() 等价的东西?

P.S.:我还需要在实现测试时转储调试语句。

更新

我在包含所有合并测试的文件上使用 maven 插件:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.1</version>
            <executions>
                <execution>
                <phase>test</phase>
                <goals>
                    <goal>java</goal>
                </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>org.mozilla.javascript.tools.shell.Main</mainClass>
                <arguments>
                    <argument>-opt</argument>
                    <argument>-1</argument>
                    <argument>${basedir}/src/main/webapp/html/js/test/test.js</argument>
                </arguments>
            </configuration>
        </plugin>

更新 II

我试过console.log("..."),但我得到了:

js: "src/main/webapp/html/js/concat/tests_all.js", line 147:
uncaught JavaScript runtime exception: ReferenceError: "console" is not defined

我正在测试的代码是一组函数(例如在库中)。我正在使用 QUnit。

【问题讨论】:

    标签: java javascript compile-time println system.out


    【解决方案1】:

    console.log().

    Chrome、Safari 和 IE 8+ 都带有内置控制台(作为更大的开发工具集的一部分)。如果您使用的是 Firefox,请getfirebug.com

    【讨论】:

    • 我尝试了建议的解决方案,但没有奏效。我已经更新了我的问题。
    【解决方案2】:

    如果浏览器有支持控制台,则基本上是console.log("Put a message here.")

    另一种典型的调试方法是使用警报,alert("Put a message here.")

    RE:更新 II

    这似乎有道理,您正在尝试自动化 QUnit 测试,根据我在 QUnit 上阅读的内容,这是一个浏览器内单元测试套件/库。 QUnit 期望在浏览器中运行,因此期望浏览器能够识别您正在调用的所有 JavaScript 函数。

    根据您的 Maven 配置,您似乎正在使用 Rhino 在命令行/终端执行 Javascript。这不适用于测试浏览器的细节,您可能需要为此查看 Selenium。如果您不关心在浏览器中测试您的 JavaScript,而只是在命令行级别测试 JavaScript(由于我不熟悉的原因),那么 Rhino 似乎可以识别 print() 方法评估表达式并将它们打印出来。结帐this documentation

    您可能对这些链接感兴趣。

    QUnit and Automated Testing

    JavaScript Unit Tests with QUnit

    【讨论】:

    • 如果浏览器没有console,那么它就是一个糟糕的浏览器(用于调试)。
    • @Rocket 我同意,希望其中大多数不再存在,但以前绝对是个问题。此外,那些蹩脚的浏览器是您必须进行最多调试的浏览器!
    • 我知道IE不会有console对象,除非你打开调试工具,然后它会添加它。但那是因为 IE 很笨。
    • 注意ie
    • @Rocket 哪个移动浏览器有控制台,如何阅读?
    【解决方案3】:

    至少没有,除非您在浏览器中使用某种“开发人员”工具,例如Firefox 中的 Firebug 或 Safari 中的开发者工具。然后你通常可以使用console.log

    如果我在 iOS 设备上做某事,我可能会添加 &lt;div id="debug" /&gt; 然后登录。

    【讨论】:

    • 好策略,iOS 设备确实有控制台,您可以通过设置 > Safari > 高级 > 调试控制台启用它
    • 酷豆@ChrisWagner,我不知道!
    【解决方案4】:

    您始终可以在函数的任何位置简单地添加 alert() 提示。对于了解函数是否被调用、函数是否完成或函数失败的位置特别有用。

    alert('start of function x');
    alert('end of function y');
    alert('about to call function a');
    alert('returned from function b');
    

    你明白了。

    【讨论】:

    • 是的,它可以工作,但是当多次运行编译过程时,我必须关闭每个警报 -> 对我来说有点不切实际......
    • 正确 - 我知道这在哪里有点不切实际。我用了一点 FireBug,好像有你要找的东西getfirebug.com/logging
    【解决方案5】:

    我找到了解决办法:

    print("My message here");
    

    【讨论】:

      【解决方案6】:

      我也将问同样的问题。但是从我从 codeacademy.com 学到的以下代码足以显​​示输出或文本?

      print("hello world")  
      

      【讨论】:

        【解决方案7】:

        我正在使用 Chrome 并且 print() 将文本打印在纸上。这对我有用:

        document.write("My message");
        

        【讨论】:

          【解决方案8】:

          在 java 中,System.out.println() 向控制台打印一些内容。在javascript中同样可以使用console.log()来实现。

          您需要通过按F12 键打开开发者工具然后切换到console 选项卡来查看浏览器控制台。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-12-06
            • 2021-09-21
            • 2010-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多