ECMAScript6入门简介篇
ECMAScript 6
ECMAScript 6(簡稱ES6)是于2015年6月正式發(fā)布的JavaScript語言的標(biāo)準(zhǔn),正式名為ECMAScript 2015(ES2015)。它的目標(biāo)是使得JavaScript語言可以用來編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級開發(fā)語言.
另外,一些情況下ES6也泛指ES2015及之后的新增特性,雖然之后的版本應(yīng)當(dāng)稱為ES7、ES8等.
ECMAScript 和 JavaScript的關(guān)系
要講清楚這個問題,需要回顧歷史。1996 年 11 月,JavaScript 的創(chuàng)造者 Netscape 公司,決定將 JavaScript 提交給標(biāo)準(zhǔn)化組織 ECMA,希望這種語言能夠成為國際標(biāo)準(zhǔn)。次年,ECMA 發(fā)布 262 號標(biāo)準(zhǔn)文件(ECMA-262)的第一版,規(guī)定了瀏覽器腳本語言的標(biāo)準(zhǔn),并將這種語言稱為 ECMAScript,這個版本就是 1.0 版。
該標(biāo)準(zhǔn)從一開始就是針對 JavaScript 語言制定的,但是之所以不叫 JavaScript,有兩個原因。一是商標(biāo),Java 是 Sun 公司的商標(biāo),根據(jù)授權(quán)協(xié)議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且 JavaScript 本身也已經(jīng)被 Netscape 公司注冊為商標(biāo)。二是想體現(xiàn)這門語言的制定者是 ECMA,不是 Netscape,這樣有利于保證這門語言的開放性和中立性。
因此,ECMAScript 和 JavaScript 的關(guān)系是,前者是后者的規(guī)格,后者是前者的一種實(shí)現(xiàn)(另外的 ECMAScript 方言還有 JScript 和 ActionScript)。日常場合,這兩個詞是可以互換的。
ES6的兼容性問題
IE10+,chrome,Firefox,移動端,nodesjs現(xiàn)在都支持
兼容低版本的瀏覽器
支持在線轉(zhuǎn)換(這種編譯會加大頁面渲染的時間)
支持提前編譯(強(qiáng)烈建議這種方式,不影響瀏覽器渲染的時間)
使用babel工具
使用npm進(jìn)行安裝,npm時隨同nodejs一起安裝的包的管理工具,也就是需要先安裝node
我們可以來安裝一下
我們創(chuàng)建一個普通的項(xiàng)目
進(jìn)入項(xiàng)目目錄安裝babel
npm install babel-cli -g
安裝完之后會生成相對應(yīng)的文件
Babel -V 查看babel的環(huán)境
因?yàn)槲以诎惭bnodejs的時候采用的全局安裝,
在命令行中使用 npm config ls查到npm的默認(rèn)安裝目錄,
即prefix=C:\Users\xxxx\AppData\Roaming\npm,
然后進(jìn)入這個目錄使用npm install –-save-dev babel-cli安裝babel,然后就成功了。。
注意AppData是個隱藏文件夾
然后再當(dāng)前項(xiàng)目下輸入npm init -y 或者是 npm init
這是后說明我們的babel環(huán)境搭建好了
可以直接再黑窗口運(yùn)行這個js文件
使用這個echo .>.babelrc生成一個.Babelrc的文件
然后打開它在里面輸入
{
//設(shè)置轉(zhuǎn)碼規(guī)則
“presets”: [“es2015”,“stage-2”],
“plugins”: [“transform-runtime”] //設(shè)置插件
}
然后我們安裝需要的插件
npm install babel-core babel-preset-es2015 babel-plugin-transform-runtime babel-preset-stage-2 -save-dev
安裝成功
我們把package.json中的錯誤改一下
這里就是指的將src目錄下的文件轉(zhuǎn)換編譯成新文件到lib下面
那么我們?nèi)?chuàng)建兩個目錄
,把index.js放到src下面,輸入npm run build 運(yùn)行,我們會看到自動編譯的效果
轉(zhuǎn)換的支持條件
let命令
接下來我們來學(xué)習(xí)一下ES6新增的命令 let
再學(xué)習(xí)let的時候,我們先來回復(fù)一下var的使用方法,這是我們再學(xué)習(xí)JavaScript的時候經(jīng)常使用的聲明變量用的
我們運(yùn)行一下,再控制臺看到輸出
我們刷新一下也面會發(fā)現(xiàn),這個時候輸出的是40
再這邊我們想說的是,再js中var這個使用的方式,可以重復(fù)的聲明變量,和其他的編程語言來比較的話,我們發(fā)現(xiàn)這是不可以想象的,是不可思議的。并且使用var不可以限制變量,(也就是只有一種var的聲明方式,沒有常量的說法)
我們還可一看到,使用var沒有辦法區(qū)分使用區(qū)間
let命令 接下來我們在寫個例子來區(qū)分一下 let命令
簡單使用的方法
Const命令
const 聲明一個只讀變量,聲明之后不允許改變。意味著,一旦聲明必須初始化,否則會報錯
注意要點(diǎn):
const 如何做到變量在聲明初始化之后不允許改變的?其實(shí) const 其實(shí)保證的不是變量的值不變,而是保證變量指向的內(nèi)存地址所保存的數(shù)據(jù)不允許改動。此時,你可能已經(jīng)想到,簡單類型和復(fù)合類型保存值的方式是不同的。是的,對于簡單類型(數(shù)值 number、字符串 string 、布爾值 boolean),值就保存在變量指向的那個內(nèi)存地址,因此 const 聲明的簡單類型變量等同于常量。而復(fù)雜類型(對象 object,數(shù)組 array,函數(shù) function),變量指向的內(nèi)存地址其實(shí)是保存了一個指向?qū)嶋H數(shù)據(jù)的指針,所以 const 只能保證指針是固定的,至于指針指向的數(shù)據(jù)結(jié)構(gòu)變不變就無法控制了,所以使用 const 聲明復(fù)雜類型對象時要慎重。
總結(jié)
以上是生活随笔為你收集整理的ECMAScript6入门简介篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学学习论坛 需求分析报告.菜鸟版.多喷
- 下一篇: ES6箭头函数和模板字符串