一些與ES6相關(guān)的知識點

  1. 首先javascript與ECMAscript的關(guān)系是:前者是后者的規(guī)格(標準),后者是前者的一種實現(xiàn)(另外的ECMAScript方言還有Jscript和ActionScript)。平常所說的JavaScript實現(xiàn)是由ECMAScript和BOM ,DOM組成的。在日常場合,這兩個詞是可以互換的。
    到這里,我們就知道為什么要學(xué)ES6 (ES2015)啦~

  2. 關(guān)于ES6最常用的特性:

  • let,
  • const,
  • class,
  • extends,
  • super,
  • arrow functions,
  • template string,
  • destructuring,
  • default,
  • rest arguments
    共計10個

唔~偷個懶(先掌握前兩個……)

let,const用法(聲明變量)

舉個栗子:

代碼引自:http://www.itdecent.cn/p/ebfeb687eb70

var name = 'zach'

while (true) {
    var name = 'obama'
    console.log(name)  //obama
    break
}

console.log(name)  //obama

上述結(jié)果,內(nèi)層變量覆蓋外層變量,是因為在ES5中只有全局作用域和函數(shù)作用域,沒有塊級作用域。

在ES6中,let為javascript新增了塊級作用域,用它聲明的變量只有在let命令所在的代碼塊才生效。

let name = 'zach'

while (true) {
    let name = 'obama'
    console.log(name)  //obama
    break
}

console.log(name)  //zach

除此之外,var帶來的不便還有循環(huán)計數(shù)的變量泄露為全局變量,如:

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10

對比之下

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

其實有個疑問,關(guān)于如下兩個例子:

圖片.png

圖片.png

這結(jié)果真是出乎我的意料啊,我本以為用let來定義,此時會輸出undefinded呢~~~~~~~~~~~~~~~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容