ES6、TYPESCRIPT、ATSCRIPT和BABEL是什么玩意儿?
前言
这个题目翻译自原版标题WTF IS ES6/TYPESCRIPT/ATSCRIPT/BABEL?
,挺好玩的题目。
由于官方文档的JS版本对比TS版本少非常多,我也没有能力确保把TS搬到JS并保证他的正确性,所以我暂时选择等待官方的更新。这期间我会找一些Angular2的非官方文档来继续学习。
原文地址正文
对于开发者来说,最难的事情之一就是如何写现代化JavaScript。现在有ES5、ES6、TypeScript、AtScript、Dart、Babel以及之后的ES7,这个名单还在增加。
JavaScript是一个庞大的标准驱动的语言。这意味着有一个委员会来决定JavaScript是什么样的,确定它的最低限的定义,然后浏览器厂商来实现。现在(但不会太久了),ES5是JS被最广泛支持的版本。
然而,委员会启动的设计是出了名的慢,所以每一个从开发者到浏览器厂商都急于使用和实现新的特性,这比委员会的工作要快。
在浏览器看来,JS有点像(assembly of the web(网页组件)),意味着它可以运行更高等级语言编写的代码,然后将它“编译”为浏览器可理解的JS。
CoffeeScript就恰恰是这样的,第一个非常成功的更高级的JS语言。一个开发者可以编写CoffeeScript,然后编译工具可以将它转变为第一层的JS语言。
这就是我们现在看到的ES6和其他(语言)的关系。浏览器还没有natively(直接地)实现许多ES6+的特性,并且开开发者们想对JS进行改革。这意味着他们已经开始开发他们的更高等级的JS语言,例如AtScript,TypeScript,和想Babel这样的工具实现未来JavaScript的特性并且将它编译为ES5。
Dart是Google几年前创建的实验性语言。我们不建议使用Dart作为取代JS的新特性(原文的话)。
ArScript是Google创建的使用新特性扩展JS和TypeScript的实验性语言,例如annotation和type introspection。它现在已经被抛弃了。
TypeScript是Microsoft的JS扩展,提供了强力的类型检查能力和面向对象特性。Angular2 和 Ionic2都使用TypeScript。
ES6是JavaScript的下一个版本,它最近才被提出并提过了很多编写JS的方式。ES7是JS的未来版本,有些已经被更高记得JavaScript语言实现了。
总结
如果你想要开发ES6或ES7,你可以用Babel,是“下一代JavaScript语言代码的编译器”。如果你想用Ionic和Angular,我们建议你使用TypeScript,它提供了和Babel类似的功能,还有type checking(类型检查)。