Javascript 中 Java 的 System.out.println() 的等价物是啥?

Posted

技术标签:

【中文标题】Javascript 中 Java 的 System.out.println() 的等价物是啥?【英文标题】: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。

【问题讨论】:

【参考方案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 选项卡来查看浏览器控制台。

【讨论】:

以上是关于Javascript 中 Java 的 System.out.println() 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java中网络相关API

JAVA中implements的用法

java基础---异常

java 方法重载

Java:网络传输

Linux Syste m Call Table