TMS WEB Core 中的“ECMA Script”项目设置有什么作用?

问题描述 投票:0回答:1

在项目设置中,您可以在“ECMA Script 5”和“ECMA Script 6”之间设置“ECMA Script”。

但我真的很困惑这到底是做什么的。我已经尝试了所有三种设置,无论设置如何,我的输出 JavaScript 代码都完全相同。

这些是“ECMA Script 6”中的新东西:

  • let 关键字
  • const 关键字
  • 箭头功能
  • ...操作员
  • 为了/属于
  • 地图对象
  • 设置对象
  • 课程
  • 承诺
  • 符号
  • 默认参数
  • 功能剩余参数
  • String.includes()
  • String.startsWith()
  • String.endsWith()
  • Array.from()
  • 数组键()
  • 数组查找()
  • 数组findIndex()
  • 新的数学方法
  • 新数字属性
  • 新的数字方法
  • 新的全局方法
  • 对象条目
  • JavaScript 模块

但是当设置为“ECMA Script 6”时,我在输出代码中并没有真正看到任何这些。


作为示例,这里是一些 Delphi 编程代码:

procedure TFrame_404PageNotFound.WebFrameResize(Sender: TObject);
const
  TestingConstant: String = 'Hello World!';
var
  TestingSomething: String;
  I: UInt64;
begin
  For I := 0 to 10 do
    TestingSomething := 'Hello World!';
  console.log('TFrame_404PageNotFound.WebFrameResize');
end;

这是它的输出 JavaScript:

var TestingConstant = "Hello World!";
this.WebFrameResize = function (Sender) {
  var TestingSomething = "";
  var I = 0;
  for (I = 0; I <= 10; I++) TestingSomething = "Hello World!";
  window.console.log("TFrame_404PageNotFound.WebFrameResize");
};

我希望代码会变成更像 ES6 的东西,就像选择“ECMA Script 6”时一样。像这样的东西:

const TestingConstant = "Hello World!";
this.WebFrameResize = (Sender) => {
  let TestingSomething = "";
  for (let I = 0; I <= 10; I++) TestingSomething = "Hello World!";
  window.console.log("TFrame_404PageNotFound.WebFrameResize");
};

那么“ECMA Script”设置实际上有什么作用呢? “ECMA 脚本 5”和“ECMA 脚本 6”有什么区别?

因为据我所知,无论我的“ECMA Script”设置如何,我的输出 JavaScript 都是完全相同的。

delphi tms tms-web-core
1个回答
0
投票

我对 TMS Web Core 不太熟悉,但在简单深入研究后,我偶然发现了一些有价值的见解。 TMS Web Core 使用 Pas2js 将 Pascal 编写的程序转换为 JavaScript。根据 Pas2js 官方文档,它使用 ECMA Script 5 作为默认 JavaScript 版本,这应该可以减轻有关没有指定版本的翻译的任何担忧。

关于ECMA Script 6版本,我遇到的信息有限,具体为:

ECMAScript6:引入 0b 表示二进制文字,0o 表示八进制文字。

我根据此片段制定了两种理论:要么 ECMAScript 6 翻译器仅合并了这些更改,要么 TMS Web Core 与 Pas2js 的集成可能存在问题。

欲了解更多详情,您可以浏览以下链接:

Pas2js 转译器维基

© www.soinside.com 2019 - 2024. All rights reserved.