哪个JavaScript(ECMAScript)版本可以实现Java的Rhino实现(以及更新策略是什么?)

soc*_*soc 6 javascript java programming-languages rhino

哪个版本的ECMAScript标准可以支持Java的JavaScript引擎Rhino,修复错误需要做多少工作,并使实现与最新的标准化版本保持同步?

Pet*_*ler 8

从Rhino版本的发行说明中所写的内容:

  • Rhino 1.5 - JavaScript 1.5/ECMA脚本3.
  • Rhino 1.6R2 - 与Java 6捆绑在一起 - JavaScript 1.5,ECMAScript for XML(E4X,JavaScript 1.6的一部分).
  • Rhino 1.6R6 - 支持剩余的JavaScript 1.5(严格).
  • Rhino 1.7R1 - JavaScript 1.7新功能:生成器,迭代器,数组解析,let表达式和解构赋值.
  • Rhino 1.7R3 - 与Java 7捆绑在一起 - JavaScript 1.7,部分JavaScript 1.8和ECMAScript 5,严格模式除外.
  • Rhino 1.7R4 - JavaScript 1.7是默认的,ES5合规性修复,JavaScript 1.8生成器表达式.
  • 犀牛1.7R5 -
  • Rhino 1.7.6 - Array.find(),@ Dredrecated annotation,JavaScript 1.8 String.
  • Rhino 1.7.7 - 对ECMA Script 6,ES6 Math,Number和String类的初始支持.
  • Rhino 1.7.7.1 - 修复

似乎Rhino版本,Mozilla的JavaScript版本和ECMA Script版本的范围非常不同.


Poi*_*nty 3

注意:这个问题已经过时并且没有用。

\n

这个问题是在 2011 年提出的,并且 JDK(截至 2015 年秋末)不再随 Rhino 一起提供;该问题涉及 JDK 1.6,尽管 JDK 1.7 是在几周后发布的。

\n

JDK 1.8 60 中的 Nashorn 支持 ES 5.1,可能还有一些 ES2015 扩展;很难从 Oracle 来源中找到明确的兼容性声明。据推测,JDK 9 Nashorn 应该“完全支持”ES2015,但我再次未能成功找到官方来源。

\n

编辑\xe2\x80\x94 请注意,即使是 Nashorn 也很快就会不受支持;JDK 13?14?类似的事情。

\n

以下是原答案。

\n
\n

附带的 JDK(来自 Sun)中的 Rhino 版本为 1.6R2。这是古老的。据说它会在 1.7 版本中更新。

\n

您始终可以从 Mozilla 下载 Rhino 并使用他们的集成工具。我用过 Sun 的,虽然它非常简单,但还有很多不足之处。

\n

编辑\xe2\x80\x94 来了解它是哪个 ECMAScript 标准,好吧,它是 Mozilla 版本,所以他们有自己的修改。然而 1.6R2 太老了,甚至没有像“.forEach()”这样的东西。

\n

  • 我不同意这个问题没有用。尽管大多数人都在迁移到 Java 7 或 Java 8 或更高版本,但有些人出于某种原因却没有将 JS 代码更新到 Nashorn。换句话说,他们在 Java 8 JVM 中使用 Rhino 1.7.7.1。所以这个问题仍然有意义。 (4认同)