JavaScript:到底什么是ES6、ES8、ES 2017、ECMAScript?

简介:

JavaScript:到底什么是ES6、ES8、ES 2017、ECMAScript?


学习 JavaScript 和 ECMAScript 历史和它们命名的由来!

学习 JavaScript 过程中可能会有一些疑惑。特别是一些缩写,一些缩写的组合;我们就来彻底解释下这些名词。

什么是 ECMAScript?

这发生在很久很久以前:

  1. JavaScript 原本命名这个名字是因为想借助 Java 的成功,以在业界能够站住脚。
  2. Netscape 公司提交了 JavaScript 到 ECMA International 作为一个标准。(ECMA 是一个专门做标准建设的组织)
  3. 结果就是这个新语言的标准,就叫做 ECMAScript.

简单来说,ECMAScript 是个标准,同时 JavaScript 又是实现这个标准用的最多的语言。JavaScript 本身就是建立在 ECMAScript 标准上的语言。

那么 ‘ES’ 又是什么…?

ES 是 ECMAScript 的缩写。每次看到 ES 后面跟着数字,是 ECMAScript 的不同版本。实际上一共有 8 个版本。我们来深入了解下:

ES1、ES2、ES3、ES4

ES1:1997 年 6 月  ——  ES2:1998 年 6 月  ——  ES3:1999 年 12月  ——  ES4:未通过

我把所有这些组合起来。这是前 4 个版本的 ECMAScript,这里简单过一下。仅仅让你知道前 3 个版本每年出一个,而第 4 个版本因为政治因素未通过。

ES5

2009 年 12月:将近 10 年之后,ES5 在 2009 年发布。而下个版本的 ECMAScript 也花了 6 年才发布。

ES6 / ES2015

2015 年 6 月:也许困惑就是从这里开始的。你可以看到, ES6 和 ES2015 实际上是同一个东西。

起先被推广的名字是 ES6 。然而组委会要求 ECMAScript 必须做到每年做一次更新。由此,这个版本被更名为 ES 2015,且每年都需要更新,并命名为当前年的后缀。

ES2016 (ES7)

2016 年 6 月:ECMAScript 的第 7 个版本。

ES2017 (ES8)

2017 年 6 月:ECMAScript 的第 8 个版本。

ES.Next

你可能会看到 ES.Next 的出现。这个是不稳定版本,是下个版本出现前的一个成果物。

为什么要这样?

因为每次发布都会为语言带来更新和新特性。

关键点

  • ECMAscript 每年都会更新一版.
  • ECMAScript 的命名是根据数字排序,从 1 开始: ES1、 ES2、 ES3、 ES4、 ES5
  • 新版本(从 2015 年起) ES 命名是根据年份来算的: ES2015、 ES2016、 ES2017
  • ECMAScript 是一个标准。JavaScript 是一种流行的 ES 标准的实施语言。 其他的一些实施标准语言有: SpiderMonkey、 V8 和 ActionScript。

希望下次你再看到 ES 时,你会对它的定义有更好地理解!


本文作者:Brandon Morelli

来源:51CTO

相关文章
|
17天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
21 3
|
1月前
|
JavaScript 前端开发 API
ECMAScript和JavaScript的区别是什么?
【4月更文挑战第11天】ECMAScript和JavaScript的区别是什么?
13 1
|
2月前
|
缓存 JavaScript 数据安全/隐私保护
js开发:请解释什么是ES6的Proxy,以及它的用途。
`ES6`的`Proxy`对象用于创建一个代理,能拦截并自定义目标对象的访问和操作,应用于数据绑定、访问控制、函数调用的拦截与修改以及异步操作处理。
24 3
|
2月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
23 2
|
1天前
|
Web App开发 JavaScript 前端开发
Ecmascript 和javascript的区别
Ecmascript 和javascript的区别
7 0
|
11天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】ECMAScript 6+新特性详解
【4月更文挑战第30天】ES6(ES2015)标志着JavaScript的重大更新,引入了类和模块、箭头函数、模板字符串、解构赋值、Promise、新数据类型Symbol、Set和Map集合等特性,提高了语言表达力和开发效率。后续版本继续添加新特性,如ES2016的`Array.prototype.includes`,ES2017的`async/await`,以及ES2018的`Object/rest`。学习和掌握这些特性对于提升开发质量和效率至关重要。
|
17天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的Generator函数,以及它的用途。
ES6的Generator函数是暂停/恢复功能的特殊函数,利用yield返回多个值,适用于异步编程和流处理,解决了回调地狱问题。例如,一个简单的Generator函数可以这样表示: ```javascript function* generator() { yield 'Hello'; yield 'World'; } ``` 创建实例后,通过`.next()`逐次输出"Hello"和"World",展示其暂停和恢复的特性。
20 0
|
28天前
|
JavaScript 前端开发
JavaScript高级主题:什么是 ES6 的解构赋值?
【4月更文挑战第13天】ES6的解构赋值语法简化了从数组和对象中提取值的过程,提高代码可读性。例如,可以从数组`[1, 2, 3]`中分别赋值给`a`, `b`, `c`,或者从对象`{x: 1, y: 2, z: 3}`中提取属性值给同名变量。
18 6
|
2月前
|
JavaScript 前端开发 API
【热门话题】ECMAScript vs JavaScript:理解两者间的联系与区别
**ECMAScript是JavaScript的规范,定义语言核心如语法和数据类型;JavaScript是其实现,浏览器中的实现包括额外的API和库。两者关系:蓝图与建筑,规范与实现。了解此区分有助于精准开发。**
30 6
|
2月前
|
JavaScript 前端开发
js开发:请解释什么是ES6的async/await,以及它如何解决回调地狱问题。
ES6的`async/await`是基于Promise的异步编程工具,能以同步风格编写异步代码,提高代码可读性。它缓解了回调地狱问题,通过将异步操作封装为Promise,避免回调嵌套。错误处理更直观,类似同步的try...catch。