AngularJS 2.0 用 ECMAScript 重写?
似乎您将 ES 误认为是另一种语言。
ES (ECMAScript)是 JavaScript 语言所基于的标准。它基于它定义了 JS 和其他语言的规则和行为。ES5 是第 5 个修订版,ES6 是撰写本文时即将发布的修订版。
他们正在使用 ECMAScript 6,但将其编译为 5
今天几乎每个浏览器都与 ES5 兼容,而与 ES6 不兼容。像新的 API 和非常方便的语法一样使用 ES6 是有动机的——但这些在 ES5 中不存在。为了让一个人现在仍然可以使用 ES6,需要将 ES6 代码转译为 ES5。
这意味着 Angular 是用 ES6 语法编写的,但是代码被转译(转换)回 ES5 等价物,以使当前的浏览器能够运行它。
这是一个做同样事情的代码示例,一个用 ES6 编写,另一个用 ES5 编写,由转译器生成。请注意 ES6 版本相比 ES5 版本的便利性。
// ES6
var seattlers = [for (c of customers) if (c.city == "Seattle") { name: c.name, age: c.age }];
// ES5
var seattlers = customers.filter(function (c) {
return c.city == "Seattle";
}).map(function (c) {
return {
name: c.name,
age: c.age
};
});
这将如何影响使用?
它将如何与我用来调用其 API 的 JavaScript 兼容?
将不同的语言写在一起
他们(Angular)在即将发布的版本中编写了它,然后将其转换回可以在当前浏览器上运行的当前版本。在消费者部分没有额外的努力。此举可能是为了让代码“具有前瞻性”,为今天的未来版本准备代码库。