ES6總結(jié)

前言

ECMAScript 6.0(簡稱ES6),作為一代JavaScript的語言標(biāo)準(zhǔn)正式發(fā)布于2015 年 6 月糕韧,至今已經(jīng)發(fā)布3年多了,這里我總結(jié)了絕大部分ES6,以及ES6以后新語法的知識點页滚,使用場景。

let/const(常用)

let,const用于聲明變量铺呵,用來替代var關(guān)鍵字裹驰,與var不同的是,let/const會創(chuàng)建一個塊級作用域(通俗講就是一個花括號內(nèi)是一個新的作用域)

這里外部的console.log(x)拿不到前面2個塊級作用域聲明的let:

在日常開發(fā)中多存在于使用if/for關(guān)鍵字結(jié)合let/const創(chuàng)建的塊級作用域片挂,值得注意的是使用let/const關(guān)鍵字聲明變量的for循環(huán)和var聲明的有些不同

for循環(huán)包括三個部分幻林,第一部分一個變量聲明,第二部分一個循環(huán)的結(jié)束的條件音念,第三部分每次循環(huán)要執(zhí)行的表達(dá)式沪饺,也就是說第一部分在這個for循環(huán)中只會執(zhí)行一次var i = 0,而后面的兩個部分在每次循環(huán)的時候都會執(zhí)行一遍闷愤。

而使用使用let/const關(guān)鍵字聲明變量的for循環(huán)整葡,除了會創(chuàng)建塊級作用域,let/const還會將它綁定到每個循環(huán)中肝谭,確保對上個循環(huán)結(jié)束時候的值進(jìn)行重新賦值掘宪。

簡而言之就是每次循環(huán)都會聲明一次(對比var聲明的for循環(huán)只會聲明一次)蛾扇,可以這么理解let/const中的for循環(huán)。

給每次循環(huán)創(chuàng)建一個塊級作用域:

暫時性死區(qū)

使用let/const聲明的變量魏滚,從一開始就形成了封閉作用域镀首,在聲明變量之前是無法使用這個變量的,這個特點也是為了彌補(bǔ)var的缺陷(var聲明的變量有變量提升)

1

在預(yù)編譯的階段,JS編譯器會先解析一遍判斷是否有l(wèi)et/const聲明的變量,如果在一個花括號中存在使用let/const聲明的變量,則ES6規(guī)定這些變量在沒聲明前是無法使用的,隨后再是進(jìn)入執(zhí)行階段執(zhí)行代碼鼠次。

這里當(dāng)滿足if的條件時,進(jìn)入true的邏輯,這里因為使用了let聲明了變量name,在一開始就"劫持了這個作用域",使得任何在let聲明之前使用name的操作都會報錯更哄。

const

使用const關(guān)鍵字聲明一個常量,常量的意思是不會改變的變量腥寇,const和let的一些區(qū)別是:

1.const聲明變量的時候必須賦值成翩,否則會報錯,同樣使用const聲明的變量被修改了也會報錯

2.const聲明變量不能改變赦役,如果聲明的是一個引用類型麻敌,則不能改變它的內(nèi)存地址

let/const聲明的變量卻沒有變?yōu)槿肿兞?/p>

箭頭函數(shù)(常用)

ES6 允許使用箭頭? ()=>()?定義函數(shù)

箭頭函數(shù)對于使用function關(guān)鍵字創(chuàng)建的函數(shù)有以下區(qū)別

箭頭函數(shù)沒有arguments.

箭頭函數(shù)沒有prototype屬性,不能用作構(gòu)造函數(shù)(不能用new關(guān)鍵字調(diào)用)

箭頭函數(shù)沒有自己this掂摔,它的this是詞法的术羔,引用的是上下文的this,即在你寫這行代碼的時候就箭頭函數(shù)的this就已經(jīng)和外層執(zhí)行上下文的this綁定了(這里個人認(rèn)為并不代表完全是靜態(tài)的,因為外層的上下文仍是動態(tài)的可以使用call,apply,bind修改,這里只是說明了?箭頭函數(shù)的this始終等于它上層上下文中的this)

1

因為setTimeout會將一個匿名的回調(diào)函數(shù)推入異步隊列乙漓,而回調(diào)函數(shù)是具有全局性的级历,即在非嚴(yán)格模式下this會指向window,就會存在丟失變量a的問題叭披,而如果使用箭頭函數(shù)寥殖,在書寫的時候就已經(jīng)確定它的this等于它的上下文(這里是makeRequest的函數(shù)執(zhí)行上下文,相當(dāng)于將箭頭函數(shù)中的this綁定了makeRequest函數(shù)執(zhí)行上下文中的this)因為是controller對象調(diào)用的makeRequest函數(shù)涩蜘,所以this就指向了controller對象中的a變量

箭頭函數(shù)的this指向即使使用call,apply,bind也無法改變(這里也驗證了為什么ECMAScript規(guī)定不能使用箭頭函數(shù)作為構(gòu)造函數(shù)嚼贡,因為它的this已經(jīng)確定好了無法改變)

箭頭函數(shù)使代碼更加簡潔

Es5:寫法

1

Es6:箭頭函數(shù)

1

在數(shù)組的迭代中使用箭頭函數(shù)更加簡潔,并且可以省略return關(guān)鍵字


注意:不要在可能改變this指向的函數(shù)中使用箭頭函數(shù)同诫,類似vue中的methods,computed中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末编曼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剩辟,更是在濱河造成了極大的恐慌掐场,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贩猎,死亡現(xiàn)場離奇詭異熊户,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吭服,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門嚷堡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事蝌戒〈埽” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵北苟,是天一觀的道長桩匪。 經(jīng)常有香客問我,道長友鼻,這世上最難降的妖魔是什么傻昙? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮彩扔,結(jié)果婚禮上妆档,老公的妹妹穿的比我還像新娘。我一直安慰自己虫碉,他們只是感情好贾惦,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敦捧,像睡著了一般纤虽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绞惦,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機(jī)與錄音洋措,去河邊找鬼济蝉。 笑死,一個胖子當(dāng)著我的面吹牛菠发,可吹牛的內(nèi)容都是我干的王滤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼滓鸠,長吁一口氣:“原來是場噩夢啊……” “哼雁乡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糜俗,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤踱稍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后悠抹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珠月,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年楔敌,在試婚紗的時候發(fā)現(xiàn)自己被綠了啤挎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡卵凑,死狀恐怖庆聘,靈堂內(nèi)的尸體忽然破棺而出胜臊,到底是詐尸還是另有隱情,我是刑警寧澤伙判,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布象对,位于F島的核電站,受9級特大地震影響澳腹,放射性物質(zhì)發(fā)生泄漏织盼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一酱塔、第九天 我趴在偏房一處隱蔽的房頂上張望沥邻。 院中可真熱鬧,春花似錦羊娃、人聲如沸唐全。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邮利。三九已至,卻和暖如春垃帅,著一層夾襖步出監(jiān)牢的瞬間延届,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工贸诚, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留方庭,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓酱固,卻偏偏與公主長得像械念,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子运悲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容