AngularJS 2.0在ECMAScript中重写了吗?

jas*_*hao 11 javascript ecmascript-5 angular

所以我今天刚刚发现Angular 2.0即将推出,他们正在使用ECMAScript 6,但将其编译为5等等,等等.

这将如何(使用ECMAScript)影响使用?它将如何我用来调用其API 的JavaScript兼容?我的意思是,将不同的语言(ES,JS)一起编写?

对这是如何工作感到困惑.感谢帮助.

编辑

对不起@Joseph,如果我的问题不够清楚,但我(主要)想知道ECMAScript 5如何在浏览器中运行,以及上面的第二段保持上下文.

JavaScript人员如何使用Angular 2.0?ES如何与JS代码一起工作?

来自文档:

虽然Angular将在ES6中,但如果您不想升级,仍可以在ES5中编写.编译器生成可读的JS,并且扩展有人类敏感的类比.

我怀疑ES可以由JS解释器运行(?)

Jos*_*eph 16

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
  };
});
Run Code Online (Sandbox Code Playgroud)

这将如何影响使用?

它将如何与我用来调用其API的JavaScript兼容?

有不同的语言一起写

他们(Angular)在即将推出的版本中编写了它,然后将其转换回当前版本,该版本可以在当今的浏览器上运行.在消费者方面没有额外的努力.这一举措可能是为了使代码"具有前瞻性",为今天的未来版本准备代码库.