?es6第一天要點(diǎn):
1晚碾、Iterator
?Array,Object,Map,Set都是一種集合,既然是集合,那遍歷便是一種基本需求献烦,而Iterator就是為了提供一種統(tǒng)一的接口機(jī)制彤敛。任何的數(shù)據(jù)結(jié)構(gòu)与帆,只要部署了Iterator接口,便可以使用類似的方式完成遍歷操作臊泌。
?es6中有幾類結(jié)構(gòu)生來就具有Iterator接口:數(shù)組鲤桥、類數(shù)組對(duì)象、Map和Set結(jié)構(gòu)
?Iterator有2個(gè)作用渠概,它使數(shù)據(jù)結(jié)構(gòu)的成員按某種次序排列茶凳,而對(duì)象,各成員并沒有一個(gè)確定的順序播揪,所以遍歷時(shí)先遍歷誰后遍歷誰并不確定贮喧。所以,給一個(gè)對(duì)象部署iterator接口猪狈,其實(shí)就是對(duì)該對(duì)象做一種線性轉(zhuǎn)換箱沦。es6有一種新的遍歷方式:for...of,而Iterator的主要作用雇庙,就是支持此操作谓形。
2、let和const
?兩者都只在聲明所在的塊級(jí)作用域內(nèi)有效疆前,不存在變量提升寒跳,也就是說必須在聲明的位置后面才能使用。
例:var temp = 123
?if(true){
?temp = '456' //報(bào)錯(cuò)
?let temp
}
?因?yàn)榇嬖谌肿兞縯emp竹椒,但塊級(jí)作用域let又聲明了一個(gè)局部變量temp童太,使后者綁定了這個(gè)塊級(jí)作用域,所以在let聲明變量前胸完,對(duì)temp賦值會(huì)報(bào)錯(cuò)书释。