-
Ecma
是国际计算机制造商协会。在1994年之前,全名为欧洲计算机制造商协会(European Computer Manufacturers Association),后来更名为Ecma国际(Ecma International) -
ECMAScript
是Ecma组织制定的标准化脚本语言,JScript和JavaScript语言是参考这个标准来实现的。 - ECMAScript标准也是有不同的版本:早在2009年12月份ECMA就发布了
ECMAScript5
,然后在2015年6月份发布了ECMAScript6
(官方称ECMAScript2015
)。 - ECMAScript6的目标是使得JavaScript语言可以用来编写大型的复杂的应用程序,于是增添了许多特性,例如:模块和类,Maps、Sets、Promises、生成器(Generators)等。
- 尽管ECMAScript6做了大量的更新,但标准化委员会仍然决定要兼容以前的版本,但随之而来的问题是,目前主流的宿主环境(无论是浏览器环境还是服务器环境)不能完全支持ES6,导致了开发者真正要使用ECMAScript6时,需要将ECMAScript6代码进行转译。
- 而
TypeScript
是一种微软开源的编程语言。由于JavaScript是弱类型的,TypeScript为JavaScript扩展类和模块的概念。正是由于TypeScript最大的特点是类型化,因此才叫做TypeScript。 - TypeScript支持ECMAScript6标准(实际上相当于是对ECMAScript6的提前实现),并且能将代码根据需求转换为 ES 3 / 5 / 6。这意味着开发者可以通过TypeScript使用最新的ECMAScript特性,无需再考虑兼容性的问题。
- 和TypeScript 相似的工具语言还有很多,主要分为两个阵营:
- 一个是类似 Babel 的阵营,坚持JavaScript 的语法风格编写,为开发者提供最新的 ECMAScript 特性;
- 另一个则是Coffeescript、Clojure、Dart等的阵营,它们的语法与 JavaScript 迥然不同,但最终会编译为JavaScript;
- Dart、CoffeScript和TypeScript对比和思考:
-
CoffeeScript
从2009年出现到现在,已十分成熟。从语法上看,CoffeeScript更像Ruby,写起来比较随意,而TypeScript更接近于C#。然而TypeScript正在超越CoffeeScript,成为大家的首选。
-
TypeScript
是通过类似于垫片(Shim)的技术进行代码转化,生成与现有js完全兼容的代码,从本质上讲它就是JavaScript。另外,由于TypeScript 是微软的产品,所以在Visual Studio工具上有良好的支持。
-
Dart
最初是由 Google 的 Chrome V8 团队打造。与TypeScript编译JavaScript代码不同,Dart是跳过翻译的步骤,直接在浏览器里面嵌入一个 Dart 解释引擎与 V8 并行。相比起TS和CS,使用Dart的人相对较少。
-
- 最后,原生Javascript该怎么学还怎么学,你不要指望通过TS or CS能完全替代它。毕竟要先学会跑,之后再讨论穿那种鞋更爽。