如何写一个string到Javascript的标准输出

我感兴趣的是写一个string到标准输出的可移植的方式,没有隐式的新行添加到最后,理想情况下迫使编码为UTF-8,与任何

  • jrunscript(来自任何JDK)
  • 犀牛
  • 的node.js

我当前的代码尝试检测它正在运行的位置,然后使用特定于平台的写入方法:

if (typeof process !== "undefined") { // assume node.js var log = function(string) {process.stdout.write(string);}; } else if (typeof println == "undefined") { // assume rhino var log = function(string) {java.lang.System.out.write(java.lang.String(string).getBytes("utf-8"));}; } else { // assume jrunscript var log = function(string) {java.lang.System.out.print(string);}; } log("X"); log("Y"); 

它应该导致:

  XY 

这能做得更好吗?

对于jrunscript,我一直使用函数print ,但是代替JDK-8021773在JDK-8中改变了它的行为。

我感兴趣的是写一个string到标准输出的可移植的方式,没有隐含的新行添加到最后,理想情况下强制编码为UTF-8,可以与任何…

没有,因为JavaScript没有“系统apis”。 JS核心是有限的,你需要使用环境中的JavaScript引擎运行的API。

我当前的代码尝试检测它正在运行的位置,然后使用特定于平台的写入方法。 但我宁愿摆脱这一点。

那是你唯一能做的事情

编辑:JavaScript规范是在这里: http : //es5.github.io/和它的简短,有0标准输出或标准input的概念,因为没有JavaScript标准库。

Interesting Posts