ECMAScript6历史-前端开发+ECMAScript+基础语法+入门教程

ECMAScript6详解

ECMAScript 历史

我们首先来看 ECMA 是什么。ECMA ,读音类似"埃科妈",是欧洲计算机制造商协会 (European Computer Manufacturers Association)的简称,是一家国际性会员制度的信息和电信标准组织。1994年之后,由于组织的标准牵涉到很多其他国家,为了体现其国际性,更名为 Ecma 国际(Ecma International),因此Ecma 就不再是首字母缩略字了。
1995 年,著名的网景公司(Netscape)的 Brendan Eich 开发了一种脚本语言,最初命名为 Mocha,后来改名为LiveScript,最后为了蹭当时火热的 Java 热度重命名为了 JavaScript。
了解了 Ecma 国际和 JavaScript,就方便了解 ECMAScript 了,ECMAScript 是一种由 Ecma 国际在标准ECMA-262 中定义的 脚本语言 规范。这种语言在往往被称为 JavaScript 或 JScript ,但实际上 JavaScript和 JScript 是 ECMA-262 标准的实现和扩展。

神秘的 ECMA-262

上文提到了第一个神秘代码 ECMA-262 ,ECMA-262 到底是什么呢?原来 Ecma 国际的标准,都会以Ecma-Number 命名,ECMA-262 就是 ECMA 262 号标准,具体就是指 ECMAScript遵照的标准。1996 年 11 月,网景公司将 JavaScript 提交给 Ecma 国际进行标准化。ECMA-262 的第一个版本于 1997 年 6 月被 Ecma 国际采纳。
尽管 JavaScript 和 JScript 与 ECMAScript 兼容,但包含超出 ECMAScript 的功能。
我们如何查看最新最全的 Ecma 标准呢,可以查看 Ecma 国际官网的 Standards 。截止到 2021 年 4 月,最新的 Ecma 标准已经到了 ECMA-423

1.ECMAScript6 简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。

它的目标,是使 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

ES6 引入了许多新的语法特性和 API,例如:

  • 类(class)和继承(inheritance)
  • 模块(module)和导入(import)
  • 箭头函数(arrow function)和默认参数(default parameter)
  • 解构赋值(destructuring assignment)和展开运算符(spread operator)
  • Promise 和异步函数(async function)
  • 生成器(generator)和迭代器(iterator)
  • 代理(proxy)和反射(reflect)
  • 新的数据类型和数据结构,如 Symbol、Set、Map、WeakSet、WeakMap 等

1.1 ECMAScript 和 JavaScript 的关系

  • 要讲清楚这个问题,需要回顾历史。
  • 1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织ECMA,希望这种语言能够成为国际标准。
  • ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是 1.0 版。
  • 因此,ECMAScript (宪法)和 JavaScript(律师) 的关系是,前者是后者的规格,后者是前者的一种实现。

1.2 ES6 与 ECMAScript 2015 的关系

  • 2011 年,ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript语言的下一个版本。

  • ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017 等等

结语

授人以鱼,不如授人以渔,希望通过本文追根溯源,带领同学们走进 ECMAScript 的世界,ES 神秘代码不再神秘,ES 新特性不再彷徨。

每个版本最新的特性请参考 版本新特性

ECMA官网请参考 ECMA-GitHub官网

语法学习请参考 ECMA中文教程

相关推荐
We་ct1 小时前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·javascript·算法·leetcode·typescript
cn_mengbei9 小时前
用React Native开发OpenHarmony应用:Reanimated共享元素过渡
javascript·react native·react.js
kyriewen9 小时前
前端测试:别为了100%覆盖率而写测试,那是自欺欺人
前端·javascript·单元测试
Data_Journal10 小时前
如何使用cURL更改User Agent
大数据·服务器·前端·javascript·数据库
掌心向暖RPA自动化10 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
竹林81810 小时前
wagmi v2 多链钱包切换:一个 Uniswap 仿盘项目让我踩了三天坑
前端·javascript
你也向往长安城吗10 小时前
最快的 JavaScript navmesh pathfinding3d 算法。
javascript
滕青山10 小时前
在线PDF拆分工具核心JS实现
前端·javascript·vue.js
兔子零102412 小时前
Ofox AI值得用吗?
前端·javascript·后端
We་ct13 小时前
React 性能优化精讲
前端·javascript·react.js·性能优化·前端框架·html·浏览器