ES6新特性

1.定義函數(shù)
2.創(chuàng)建類
3.模塊
4.let與const
5.箭頭函數(shù) arrow functions
6.字符串模板 template string
7.解構(gòu) destructuring
8.for-of循環(huán)(最簡(jiǎn)潔、最直接的遍歷數(shù)組元素的語(yǔ)法)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
es6聲明變量的6種方法:var,function,let,const,import,class
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.定義函數(shù)(不需要function也能定義函數(shù))

es6

var human = {
    breathe(name) {   //不需要function也能定義breathe函數(shù)。
        console.log(name + ' is breathing...');
    }
};
human.breathe('jarson');   //輸出 ‘jarson is breathing...’

es5

var human = {
    breathe: function(name) {
      console.log(name + 'is breathing...');
    }
};
human.breathe('jarson');

2.創(chuàng)建類

4.let與const

4.1"暫時(shí)性死區(qū)"

"暫時(shí)性死區(qū)":在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的。
只要塊級(jí)作用域內(nèi)存在let命令,它所聲明的變量就“綁定”(binding)這個(gè)區(qū)域,不再受外部的影響。

var tmp = 123;
if (true) {
  tmp = 'abc'; // ReferenceError
  let tmp;
}

ES6明確規(guī)定,如果區(qū)塊中存在let和const命令,這個(gè)區(qū)塊對(duì)這些命令聲明的變量,從一開(kāi)始就形成了封閉作用域。凡是在聲明之前就使用這些變量,就會(huì)報(bào)錯(cuò)。

typeof x; // ReferenceError
let x;

上面代碼中,變量x使用let命令聲明,所以在聲明之前,都屬于x的“死區(qū)”,只要用到該變量就會(huì)報(bào)錯(cuò)。因此,typeof運(yùn)行時(shí)就會(huì)拋出一個(gè)ReferenceError。

作為比較,如果一個(gè)變量根本沒(méi)有被聲明,使用typeof反而不會(huì)報(bào)錯(cuò)。

typeof undeclared_variable // "undefined"

<b>暫時(shí)性死區(qū)的本質(zhì)就是</b>,只要一進(jìn)入當(dāng)前作用域,所要使用的變量就已經(jīng)存在了,但是不可獲取,只有等到聲明變量的那一行代碼出現(xiàn),才可以獲取和使用該變量。

5.箭頭函數(shù)

當(dāng)我們使用箭頭函數(shù)時(shí),函數(shù)體內(nèi)的this對(duì)象,就是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象。
并不是因?yàn)榧^函數(shù)內(nèi)部有綁定this的機(jī)制,<b>實(shí)際原因是</b>箭頭函數(shù)根本沒(méi)有自己的this,它的this是繼承外面的,因此內(nèi)部的this就是外層代碼塊的this。

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

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

  • ECMAScript 6.0(以下簡(jiǎn)稱ES6)是、JavaScript語(yǔ)音的下一代標(biāo)準(zhǔn),已經(jīng)在2015年6月正式發(fā)...
    Leisure_blogs閱讀 557評(píng)論 1 2
  • let和const命令 var:聲明變量,更多的是全局作用域,存在變量提升 let:聲明變量,存在于塊級(jí)作用域,不...
    zhangivon閱讀 2,560評(píng)論 1 13
  • 首先感謝Carnia幫我指出ES6箭頭函數(shù)中this指向的錯(cuò)誤,此次主要更新箭頭函數(shù)中this指向問(wèn)題。 ECMA...
    范小飯_閱讀 9,337評(píng)論 7 21
  • ES6中比較實(shí)用的八個(gè)特性: 1.塊級(jí)作用域的let和const2.箭頭函數(shù)3.默認(rèn)參數(shù)4.模版表達(dá)式5.多行字符...
    getElementsByMK閱讀 1,167評(píng)論 0 13
  • 每日凌晨近天亮之際進(jìn)門(mén) 每夜摟著貓死盯著天花板 伴過(guò)老到不能再老的老人 聽(tīng)過(guò)新生不到三日的啼哭 我日復(fù)一日的在打量...
    九命熠心閱讀 282評(píng)論 0 0

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