相信不少前端小伙伴都对ECMAScript
,JavaScript
,TypeScript
这几个词至关熟悉,能够说是咱们工做的核心技术,但若是具体问起来这三者究竟是什么关系,有什么区别,恐怕不少小伙伴和小黑同样,很难对其进行准确的描述,因此小黑决定和你们一块儿完全搞明白他们的关系与区别前端
ECMAScript
,即ECMA-262
定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法。git
ECMA-262
将这门语言做为一个基准来定义,以便在它之上再构建更稳健的脚本语言。若是不涉及浏览器的话,ECMA-262
在基本的层面,它描述这门语言的以下部分:github
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操做符
- 全局对象
ECMAScript
只是对实现这个规范描述的全部方面的一门语言的称呼,其实也能够理解为一个语言标准,JavaScript
实现了ECMAScript
,而Adobe ActionScript
一样也实现了ECMAScript
,只要你想,也能够构建一门脚本语言如XXScript
来实现ECMAScript
浏览器
虽然JavaScript
和ECMAScript
在平时使用时基本上是同义词,但JavaScript远远不限于ECMA-262所定义的哪些部分。完整的JavaScript实现包含如下几个部分:spa
能够理解为ECMAScript
是造成JavaScript
语言基础的脚本语言,再加上DOM
和BOM
构成了完整的JavaScript
实现3d
TypeScript
是JavaScript
的超集,添加了可选的静态类型系统、不少还没有正式发布的ECMAScript
新特性(如装饰器)等,最终会被编译为JavaScript
代码。code
若是用三句话归纳他们的关系,那就是,ECMAScript
是标准语言,JavaScript
是ECMAScript
的实现,TypeScript
是JavaScript
的超集。对象
小黑水平有限,若有不足与错误之处,敬请赐教!
本篇文章由一文多发平台ArtiPub自动发布blog