ECMAScript,JavaScript,TypeScript的关系

很多前端都对ECMAScript,JavaScript,TypeScript这几个词相当熟悉,可以说是我们工作的核心技术,但如果具体问起来这三者到底是什么关系,有什么区别,恐怕很难对其进行准确的描述,所以我决定和大家一起彻底搞明白他们的关系与区别。

一、ECMAScript

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

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

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

ECMAScript只是对实现这个规范描述的所有方面的一门语言的称呼,其实也可以理解为一个语言标准,JavaScript实现了ECMAScript,而Adobe ActionScript同样也实现了ECMAScript,只要你想,也可以构建一门脚本语言如XXScript来实现ECMAScript

二、JavaScript

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

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

image.png

可以理解为ECMAScript是形成JavaScript语言基础的脚本语言,再加上DOM和BOM构成了完整的JavaScript实现

三、TypeScript

TypeScript是JavaScript的超集,添加了可选的静态类型系统、很多尚未正式发布的ECMAScript新特性(如装饰器)等,最终会被编译为JavaScript代码。

小结

如果用三句话概括他们的关系,那就是,ECMAScript是标准语言,JavaScript是ECMAScript的实现,TypeScript是JavaScript的超集。

ES: ECMAScript (语法); JS: JavaScript (应用); TS: TypeScript (类型扩展)

ECMAScript 指的是JavaScript语言的标准语法和基础环境内置对象。

JavaScript 一般指的是浏览器环境运行的 ECMAScript 语法接口的编程语言,另外还包含 BOM (浏览器的一些接口,获取浏览器信息、版本、屏幕、操作系统、url处理 等), DOM(HTML文档对象接口,就是所有你处理页面元素、样式等等都属于DOM)。

TypeScript 主要针对编程语言语法扩展来的,所以我们不拿它直接比较JS(应用型说法),TS就是 ES的语法基础上扩展了type产生的东西,除去类型定义的 TS 就是 ES,TS比ES仅仅多了type。这种类型扩展是由于JavaScript应用范围越来越广、复杂度越来越高,为了提高可维护性产生的有意义的能力。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值