如何将字符串写入Javascript的标准输出

How to write a string to standard output from Javascript

本文关键字:Javascript 标准输出 字符串      更新时间:2023-09-26

我对将字符串写入标准输出的可移植方式感兴趣,不需要在末尾添加隐式换行符,理想情况下强制编码为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-8中代表JDK-8021773的行为。

我对编写一个可移植的方法很感兴趣字符串到标准输出,没有在末尾添加隐式换行符,理想情况下是强制的编码为UTF-8,可用于…

没有,因为javascript没有"system api "。JS核心是有限的,你需要使用javascript引擎运行环境中可用的api。

我当前的代码试图检测它在哪里运行,然后使用特定于平台的写入方法。但我宁愿摆脱它。

这是你唯一能做的。

编辑:javascript规范在这里:http://es5.github.io/,它很短,没有标准输出或标准输入的概念,因为没有javascript标准库。