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 设备上做某事,我可能会添加 <div id="debug" />
然后登录。
【讨论】:
好策略,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() 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章