ECMAScript 是 JS 的語言標准。而 ES6 是新的 JS 語法標准。
PS:嚴格來說,ECMAScript 還包括其他很多語言的語言標准。
ECMAScript 發展歷史
1995年:ECMAScript 誕生。
1997年:ECMAScript 標准確立。
1999年:ES3 出現,與此同時,IE5 風靡一時。
2009年,ES5 出現,例如 foreach、Object.keys、Object.create 和 json 標准。
2015年6月,ES6正式發布。
ES6 的目標是:讓 JS 語言可以編寫復雜的大型應用程序,成為企業級開發語言。
ES6 的其他優勢
使用 babel 語法轉換器,支持低端瀏覽器。
流行的庫基本都是基於 ES6 構建。 React 默認使用 ES6 標准開發。
ES6的環境配置
掌握 ES6 之后,如果要考慮 ES5 的兼容性,可以這樣做:寫 ES6 語法的 js 代碼,然后通過 Babel
將 ES6 轉換為 ES5。
但是,在這之前,我們需要配置一下相關的環境。
建立工程目錄
(1)先建立一個空的工程目錄 ES6Demo
,並在目錄下建立兩個文件夾 src
和 dist
:
src
:書寫ES6代碼,我們寫的 js 程序都放在這里。dist
:利用 Babel 編譯生成的 ES5 代碼。我們在 HTML 頁面需要引入 dist 里的 js 文件。
(2)在 src 里新建文件 index.html
:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <!-- 我們引入 ES5 中的 js 文件,而不是引入 ES6 中的 js 文件。 --> <script src="./dist/index.js"></script> </head> <body> </body> </html>
注意,上方代碼中,我們引入的是dist
目錄下的 js 文件。
然后我們新建文件 src/index.js
:
let a = 'smyhvae'; const b = 'vitateam'; console.log(a); console.log(b);
這個文件是一個 ES6語法 的js文件,稍后,我們嘗試把這個 ES6 語法的 js 文件轉化為 ES5 的 js 文件。
PS:我們在寫代碼時,能用單引號盡量用單引號,而不是雙引號,前者在壓縮之后,程序執行會更快。
全局安裝 Babel-cli
(1)初始化項目:
在安裝Babel之前,需要先用 npm init 先初始化我們的項目。打開終端或者通過cmd打開命令行工具,進入項目目錄,輸入如下命令:
npm init -y
上方代碼中,-y
代表全部默認同意,就不用一次次按回車了(稍后再根據需要,在文件中手動修改)。命令執行完成后,會在項目的根目錄下生成package.json文件:
{ "name": "es6demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "smyhvae", "license": "ISC" }
PS:VS Code 里打開終端的快捷鍵是:Contol + ~
。
(2)全局安裝 Babel-cli:
在終端中輸入以下命令:
npm install -g babel-cli
如果安裝比較慢的話,Mac 下可以使用cnpm
進行安裝 ,windows 下可以使用nrm
切換到 taobao 的鏡像。
(3)本地安裝 babel-preset-es2015 和 babel-cli:
npm install --save-dev babel-preset-es2015 babel-cli
安裝完成后,會發現package.json
文件,已經多了 devDependencies 選項:
(4)新建.babelrc:
在根目錄下新建文件.babelrc
,輸入如下內容:
{ "presets":[ "es2015" ], "plugins":[] }
(5)開始轉換:
現在,我們應該可以將 ES6 的文件轉化為 ES5 的文件了,命令如下:(此命令略顯復雜)
babel src/index.js -o dist/index.js
我們可以將上面這個命令進行簡化一下。操作如下:
在文件 package.json
中修改鍵 scripts
中的內容:
"scripts": { "build": "babel src/index.js -o dist/index.js" },
修改后的效果如下:
目前為止,環境配置好了。以后,我們執行如下命令,即可將src/index.js
這個 ES6 文件轉化為 dist/index.js
這個 ES5 文件:
npm run build
我們執行上面的命令之后,會發現, dist目錄下會生成 ES5 的 js 文件:
index.js:
'use strict'; var a = 'smyhvae'; var b = 'vitateam'; console.log(a); console.log(b);
當我們打開網頁后,就可以在瀏覽器的控制台,看到代碼的輸出結果。