【问题标题】:我可以在当前浏览器中运行基于 ECMAScript 规范的语言,例如 JScript 或 ActionScript 吗?
【发布时间】:2023-03-25 03:50:01
【问题描述】:

我有一个很大的疑问,如果 ActionScript 和 JScript 是基于 ECMAScript 的,那么它们有可能在 Google Chrome 等环境中执行,如果不是,为什么不呢?

【问题讨论】:

  • 任何 100% 符合 ECMAScript 支持版本的代码都可以在 Chrome 中运行。但是,你实际上不能在浏览器中用纯 ECMAScript 代码做任何有用的事情,因为你不能与浏览器本身的任何东西交互——相反,你必须使用浏览器特定的 API 来做那些不是 ECMASript 方法,而是浏览器- 在不同标准中记录的特定方法。同样,ActionScript 脚本可能通过浏览器不支持的非 ECMAScript 方法与其环境交互。
  • 而一种100%符合ECMAScript最新版本的新语言不会对每个浏览器的解释器产生问题?我这样说是因为每个浏览器都有一个专用的 JavaScript 解释器,或者这就是我目前所理解的。
  • 很难说出你在问什么。不存在 100% 符合 ECMAScript 的新语言。那只是 ECMAScript 的实现(不是一种新的不同语言)——就像每个浏览器都有自己的 ECMAScript 实现一样。如果它确实是一门新语言,那么它一定有一些 ECMAScript 中没有的东西。但是,我的观点是,纯 ECMAScript 代码应该在任何兼容的 ECMAScript 实现中运行。
  • 好的。谢谢你,jfriend00。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: javascript actionscript-3 ecmascript-6 frontend actionscript


【解决方案1】:

任何 100% 符合 ECMAScript 支持版本的代码都可以在 Chrome 中运行。但是,您实际上无法在纯 ECMAScript 代码的浏览器中做任何有用的事情,因为您无法与浏览器本身中的任何内容进行交互 - 相反,您必须使用浏览器特定的 API 来执行不是 ECMAScript 方法而是浏览器的操作- 在不同标准中记录的特定方法。同样,ActionScript 脚本可能通过浏览器不支持的非 ECMAScript 方法与其环境交互。

而且 100% 符合 ECMAScript 最新版本的新语言不会对每个浏览器的解释器产生问题?我这样说是因为每个浏览器都有一个专用的 JavaScript 解释器,或者这就是我目前所理解的。

很难说出你在问什么。不存在 100% 符合 ECMAScript 的新语言。那只是 ECMAScript 的实现(不是一种新的不同语言)——就像每个浏览器都有自己的 ECMAScript 实现一样。如果它确实是一门新语言,那么它一定有一些 ECMAScript 中没有的东西。但是,我的观点是,纯 ECMAScript 代码应该在针对相同 ECMAScript 版本的任何“兼容”ECMAScript 实现中运行。

每个浏览器的实现细节并不总是完整的,因为 ECMAScript 是一个移动的目标(定期进行新修订),并且每个版本的实现开发都在进行中。因此,新功能的边缘可能存在兼容性问题,但对于跨浏览器运行并利用非常新功能的任何 Javascript 代码都是如此。对良好的跨浏览器兼容性感兴趣的开发人员要么远离最新的功能,使用 Babel 或 TypeScript 之类的东西将他们的代码交叉编译为较低的公分母,要么他们研究和测试他们可以在他们的所有应用程序中使用什么和不能使用什么。目标浏览器。

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多