一文搞清JS、ES、TS的关系

前言

相信不少前端小伙伴都对ECMAScript,JavaScript,TypeScript这几个词至关熟悉,能够说是咱们工做的核心技术,但若是具体问起来这三者究竟是什么关系,有什么区别,恐怕不少小伙伴和小黑同样,很难对其进行准确的描述,因此小黑决定和你们一块儿完全搞明白他们的关系与区别前端

image

三者关系

ECMAScript

ECMAScript,即ECMA-262定义的语言,并不局限于Web浏览器。事实上,这门语言没有输入和输出之类的方法。git

ECMA-262将这门语言做为一个基准来定义,以便在它之上再构建更稳健的脚本语言。若是不涉及浏览器的话,ECMA-262在基本的层面,它描述这门语言的以下部分:github

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操做符
  • 全局对象

ECMAScript只是对实现这个规范描述的全部方面的一门语言的称呼,其实也能够理解为一个语言标准,JavaScript实现了ECMAScript,而Adobe ActionScript一样也实现了ECMAScript,只要你想,也能够构建一门脚本语言如XXScript来实现ECMAScript浏览器

JavaScript

虽然JavaScriptECMAScript在平时使用时基本上是同义词,但JavaScript远远不限于ECMA-262所定义的哪些部分。完整的JavaScript实现包含如下几个部分:spa

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

image

能够理解为ECMAScript是造成JavaScript语言基础的脚本语言,再加上DOMBOM构成了完整的JavaScript实现3d

TypeScript

TypeScriptJavaScript的超集,添加了可选的静态类型系统、不少还没有正式发布的ECMAScript新特性(如装饰器)等,最终会被编译为JavaScript代码。code

小结

若是用三句话归纳他们的关系,那就是,ECMAScript是标准语言,JavaScriptECMAScript的实现,TypeScriptJavaScript的超集。对象

小黑水平有限,若有不足与错误之处,敬请赐教!


本篇文章由一文多发平台ArtiPub自动发布blog

相关文章
相关标签/搜索