update: ES 的各种版本

This commit is contained in:
qianguyihao 2020-07-05 22:35:21 +08:00
parent 600c413e6d
commit aac7659854
2 changed files with 77 additions and 107 deletions

View File

@ -28,37 +28,6 @@ JavaScript是由**网景**公司Netscape发明最初命名为LiveScript
JavaScript是世界上用的最多的**脚本语言** JavaScript是世界上用的最多的**脚本语言**
### JS的版本发布记录
由ECMA的第39号技术专家委员会Technical Committee 39简称TC39负责制订ECMAScript标准成员包括MicrosoftMozillaGoogle等公司
ECMAScript 就是JS的语言标准
JS的版本发布记录
- 1997ECMA 发布 ECMA-262 标准推出浏览器标准语言 ECMAScript 1.0
- 2009发布 ECMAScript 5.0
- 2011发布 ECMAScript5.1成为ISO国际标准从而推动所有浏览器都支持
- 2015发布 ECMAScript 6简称 ES6更名为ECMAScript 2015
注意**前者是按版本号区分后者是按年份区分**
- 2016发布 ECMAScript 7 ECMAScript 2016
- 2017发布ECMAScript 8 ECMAScript 2017
- 2018发布 ECMAScript 9 ECMAScript 2018
- 2019发布 ECMAScript 10 ECMAScript 2019
- 2020发布 ECMAScript 11 ECMAScript 2020
- ......
### JavaScript的发展蒸蒸日上 ### JavaScript的发展蒸蒸日上

View File

@ -1,76 +1,85 @@
## 前言 ## 前言
ECMAScript JS 的语言标准 ES6 是新的 JS 语法标准 ### ECMAScript 简介
PS严格来说ECMAScript 还包括其他很多语言的语言标准 ES 的全称是 ECMAScript它是由 ECMA 国际标准化组织 制定的一套**脚本语言的标准化规范**
很多人在做业务选型的时候会倾向于选jQuery其实jQuery的语法是偏向于ES3的而现在主流的框架 Vue.js 和React.js的语法是用的ES6 详细来说ES 是由 ECMA 的第 39 号技术专家委员会Technical Committee 39简称 TC39负责制订 ECMAScript 标准成员包括 MicrosoftMozillaGoogle 等公司
ES6中增加了很多功能上的不足比如**常量作用域对象代理异步处理继承**这些在ES5中想实现比较复杂但是ES6对它们进行了封装 PS简单来说ECMAScript JS 的语言标准但严格来说ECMAScript 还包括其他脚本语言的语言标准
### ECMAScript 发展历史 ### ECMAScript 版本发布记录
- 1995ECMAScript 诞生 - 1995 ECMAScript 诞生
- 1997ECMAScript 标准确立 - 1997 ECMAScript 标准确立ECMA 发布 ECMA-262 标准推出浏览器标准语言 ECMAScript 1.0
- 1999ES3 出现与此同时IE5 风靡一时 - 1999 发布 ES3与此同时IE5 风靡一时
- 2009ES5 出现例如 foreachObject.keysObject.create json 标准 - 2009 发布 ECMAScript 5.0简称 ES5例如 foreachObject.keysObject.create json 标准
- 2015年6月ES6正式发布 - 2011 发布 ECMAScript5.1成为 ISO 国际标准从而推动所有浏览器都支持
- 2015 6 发布 ECMAScript 6简称 ES6 ECMAScript 2015注意**前者是按版本号区分后者是按年份区分**ES 后续的版本号请尽量用**年份**来命名
- 2016 6 发布 ECMAScript 7 ECMAScript 2016
- 2017 6 发布 ECMAScript 8 ECMAScript 2017
- 2018 6 发布 ECMAScript 9 ECMAScript 2018
- 2019 6 发布 ECMAScript 10 ECMAScript 2019
- 2020 6 发布 ECMAScript 11 ECMAScript 2020
- ......
- 此后每年更新一版
### ES6 简介
从上面的 ES 的版本记录可以看出2015 6 ES6 正式发布如果用年份来命名版本号也可以称之为 ES2015
ES6 是新的 JS 语法标准**ES6 实际上是一个泛指泛指 ES 2015 及后续的版本**
很多人在做业务选型的时候会倾向于选 jQuery其实 jQuery 的语法是偏向于 ES3 而现在主流的框架 Vue.js React.js 的默认语法都是用的 ES6
ES6 中增加了很多功能上的不足比如**常量作用域对象代理异步处理继承**这些在 ES5 中想实现比较复杂但是 ES6 对它们进行了封装
ES6 的目标是 JS 语言可以编写复杂的大型应用程序成为企业级开发语言 ES6 的目标是 JS 语言可以编写复杂的大型应用程序成为企业级开发语言
### ECMAScript 的各大版本 ## ES6 的环境配置为了兼容 ES5
- ES5 : 09年发布
- ES6ECMAScript 2015年6月
- ES7ECMAScript 2016
- ES8ECMAScript 2017
### ES6 的其他优势
- 使用 babel 语法转换器支持低端浏览器
- 流行的库基本都是基于 ES6 构建 React 默认使用 ES6 标准开发
## ES6的环境配置为了兼容 ES5
掌握 ES6 之后如果要考虑 ES5 的兼容性可以这样做 ES6 语法的 js 代码然后通过 `Babel` ES6 转换为 ES5 掌握 ES6 之后如果要考虑 ES5 的兼容性可以这样做 ES6 语法的 js 代码然后通过 `Babel` ES6 转换为 ES5
babel 的作用是将 ES6 语法转为 ES5语法支持低端浏览器
但是在这之前我们需要配置一下相关的环境 但是在这之前我们需要配置一下相关的环境
### 建立工程目录 ### 建立工程目录
1先建立一个空的工程目录 `ES6Demo`并在目录下建立两个文件夹 `src` `dist` 1先建立一个空的工程目录 `ES6Demo`并在目录下建立两个文件夹 `src` `dist`
- `src`书写ES6代码我们写的 js 程序都放在这里 - `src`书写 ES6 代码我们写的 js 程序都放在这里
- `dist`利用 Babel 编译生成的 ES5 代码**我们在 HTML 页面需要引入 dist 里的 js 文件** - `dist`利用 Babel 编译生成的 ES5 代码**我们在 HTML 页面需要引入 dist 里的 js 文件**
2 src 里新建文件 `index.html` 2 src 里新建文件 `index.html`
```html ```html
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title> <title>Document</title>
<!-- 我们引入 ES5 中的 js 文件而不是引入 ES6 中的 js 文件 --> <!-- 我们引入 ES5 中的 js 文件而不是引入 ES6 中的 js 文件 -->
<script src="./dist/index.js"></script> <script src="./dist/index.js"></script>
</head> </head>
<body> <body></body>
</body>
</html> </html>
``` ```
@ -86,8 +95,7 @@ console.log(a);
console.log(b); console.log(b);
``` ```
这个文件是一个 ES6 语法 js 文件稍后我们尝试把这个 ES6 语法的 js 文件转化为 ES5 js 文件
这个文件是一个 ES6语法 的js文件稍后我们尝试把这个 ES6 语法的 js 文件转化为 ES5 js 文件
PS我们在写代码时能用单引号尽量用单引号而不是双引号前者在压缩之后程序执行会更快 PS我们在写代码时能用单引号尽量用单引号而不是双引号前者在压缩之后程序执行会更快
@ -95,32 +103,29 @@ PS我们在写代码时能用单引号尽量用单引号而不是双引
1初始化项目 1初始化项目
在安装Babel之前需要先用 npm init 先初始化我们的项目打开终端或者通过cmd打开命令行工具进入项目目录输入如下命令 在安装 Babel 之前需要先用 npm init 先初始化我们的项目打开终端或者通过 cmd 打开命令行工具进入项目目录输入如下命令
```bash ```bash
npm init -y npm init -y
``` ```
上方代码中`-y` 代表全部默认同意就不用一次次按回车了稍后再根据需要在文件中手动修改命令执行完成后会在项目的根目录下生成package.json文件 上方代码中`-y` 代表全部默认同意就不用一次次按回车了稍后再根据需要在文件中手动修改命令执行完成后会在项目的根目录下生成 package.json 文件
```json ```json
{ {
"name": "es6demo", "name": "es6demo",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"author": "smyhvae", "author": "smyhvae",
"license": "ISC" "license": "ISC"
} }
``` ```
PSVS Code 里打开终端的快捷键是`Contol + ~`
PSVS Code 里打开终端的快捷键是`Contol + ~`
2全局安装 Babel-cli 2全局安装 Babel-cli
@ -130,12 +135,10 @@ PSVS Code 里打开终端的快捷键是:`Contol + ~`。
npm install -g babel-cli npm install -g babel-cli
``` ```
![](http://img.smyhvae.com/20180304_1305.png) ![](http://img.smyhvae.com/20180304_1305.png)
如果安装比较慢的话Mac 下可以使用`cnpm`进行安装 windows 下可以使用`nrm`切换到 taobao 的镜像 如果安装比较慢的话Mac 下可以使用`cnpm`进行安装 windows 下可以使用`nrm`切换到 taobao 的镜像
3本地安装 babel-preset-es2015 babel-cli 3本地安装 babel-preset-es2015 babel-cli
```bash ```bash
@ -161,7 +164,6 @@ PSVS Code 里打开终端的快捷键是:`Contol + ~`。
} }
``` ```
5开始转换 5开始转换
现在我们应该可以将 ES6 的文件转化为 ES5 的文件了命令如下此命令略显复杂 现在我们应该可以将 ES6 的文件转化为 ES5 的文件了命令如下此命令略显复杂
@ -174,7 +176,6 @@ PSVS Code 里打开终端的快捷键是:`Contol + ~`。
在文件 `package.json` 中修改键 `scripts`中的内容 在文件 `package.json` 中修改键 `scripts`中的内容
```json ```json
"scripts": { "scripts": {
"build": "babel src/index.js -o dist/index.js" "build": "babel src/index.js -o dist/index.js"
@ -187,32 +188,32 @@ PSVS Code 里打开终端的快捷键是:`Contol + ~`。
目前为止环境配置好了以后我们执行如下命令即可将`src/index.js`这个 ES6 文件转化为 `dist/index.js`这个 ES5 文件 目前为止环境配置好了以后我们执行如下命令即可将`src/index.js`这个 ES6 文件转化为 `dist/index.js`这个 ES5 文件
```bash ```bash
npm run build npm run build
``` ```
我们执行上面的命令之后会发现 dist 目录下会生成 ES5 js 文件
我们执行上面的命令之后会发现 dist目录下会生成 ES5 js 文件
index.js index.js
```javascript ```javascript
'use strict'; 'use strict';
var a = 'smyhvae'; var a = 'smyhvae';
var b = 'qianguyihao'; var b = 'qianguyihao';
console.log(a);
console.log(b);
console.log(a);
console.log(b);
``` ```
当我们打开网页后就可以在浏览器的控制台看到代码的输出结果 当我们打开网页后就可以在浏览器的控制台看到代码的输出结果
本段内容的参考链接 本段内容的参考链接<http://jspang.com/2017/06/03/es6/>
- [技术胖带你玩转ES6视频教程 (共18集)](http://jspang.com/2017/06/03/es6/) ## 我的公众号
想学习**代码之外的技能**不妨关注我的微信公众号**千古壹号**
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
![](http://img.smyhvae.com/20200101.png)