015年6月,ECMAScript 6正式通過(guò),成為國(guó)際標(biāo)準(zhǔn)。盡管在目前的工作中還沒(méi)有使用ES6,但是每項(xiàng)新技術(shù)出來(lái)總是忍不住想嘗嘗鮮,想知道ES6能為前端開(kāi)發(fā)帶來(lái)哪些變化?對(duì)自己的工作有哪些方面可以提升。剛好看到阮一峰的《ES6標(biāo)準(zhǔn)入門(mén)》,便順著這本書(shū)嘗試著ES6的各種新特性。
ES6的各種新特性的兼容性查詢http://kangax.github.io/compat-table/es6/
盡管我們的瀏覽器還不一定完全支持ES6代碼,我們可以使用Babel轉(zhuǎn)碼器,在這里我們使用命令行轉(zhuǎn)碼babel-cli,命令行$ npm install --global babel-cli安裝babel-cli

let和const命令

let命令

ES6新增了 let 命令,用來(lái)聲明變量。它的用法類(lèi)似于 var ,但是所聲明的變量,只在 let 命令所在的代碼塊內(nèi)有效。let不像var那樣會(huì)發(fā)生“變量提升”現(xiàn)象。所以,變量一定要在聲明后使用,否則報(bào)錯(cuò)。

{
    let a = 10;
    var b = 1;}a // ReferenceError: a is not defined.b // 1

ES6明確規(guī)定,如果區(qū)塊中存在 let 和 const 命令,這個(gè)區(qū)塊對(duì)這些命令聲明的變量,從一開(kāi)始就形成了封閉作用域。凡是在聲明之前就使用這些變量,就會(huì)報(bào)錯(cuò)。
總之,在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的。這在語(yǔ)法上,稱為“暫時(shí)性死區(qū)”(temporal dead zone,簡(jiǎn)稱TDZ)。
let不允許在相同作用域內(nèi),重復(fù)聲明同一個(gè)變量。let 實(shí)際上為JavaScript新增了塊級(jí)作用域。 ES6引入了塊級(jí)作用域,明確允許在塊級(jí)作用域之中聲明函數(shù)。

const命令

const 聲明一個(gè)只讀的常量。一旦聲明,常量的值就不能改變。
const 命令聲明的常量也是不提升,同樣存在暫時(shí)性死區(qū),只能在聲明的位置后面使用。

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式