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中文教程

相关推荐
空&白14 分钟前
vue暗黑模式
javascript·vue.js
VT.馒头1 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
css趣多多1 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js
-凌凌漆-1 小时前
【vue】pinia中的值使用 v-model绑定出现[object Object]
javascript·vue.js·ecmascript
大橙子额4 小时前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
WooaiJava5 小时前
AI 智能助手项目面试技术要点总结(前端部分)
javascript·大模型·html5
Never_Satisfied5 小时前
在JavaScript / HTML中,关于querySelectorAll方法
开发语言·javascript·html
董世昌415 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6
WeiXiao_Hyy6 小时前
成为 Top 1% 的工程师
java·开发语言·javascript·经验分享·后端
xjt_09017 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js