這篇文章將為大家詳細(xì)講解有關(guān)ECMAScript6新特性之let、const的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及成都鑿毛機(jī)等,在重慶網(wǎng)站建設(shè)公司、全網(wǎng)整合營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。es6中的新特性之“l(fā)et”。首先,這個玩意兒其實(shí)和var這個命令類似,都是用于聲明變量的,但是所聲明的變量只在let命令所在的代碼塊內(nèi)有效(這里涉及到塊級作用域的概念,然而這個概念也是es6中提出來的。在后面我再來講。PS:在其他編程語言中,早就有塊級了)
上面的兩張圖就反映出了let所聲明的變量只在let命令所在的代碼塊內(nèi)有效。下面來舉個例子:
發(fā)現(xiàn)區(qū)別了嗎?var聲明的變量它是全局范圍內(nèi)都有效的,每一次的循環(huán),新的i值都會覆蓋舊值,導(dǎo)致最后輸出的是最后一輪的i值(當(dāng)然,也可以利用閉包來解決這個問題【第三張圖】)。如果使用的是let,聲明的變量僅在塊級作用域內(nèi)有效,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)i其實(shí)都是一個新的變量。在期間我發(fā)現(xiàn)了一個更神奇的東西,請看下面一張圖:
注意:①、let不像var一樣會發(fā)生“變量提升”的現(xiàn)象,所以,使用之前,必須先聲明,不然就會報錯。
②、暫時性死區(qū)(temporal dead zone,簡稱TDZ),只要塊級作用域內(nèi)有l(wèi)et命令,它所聲明的變量就會綁定這個區(qū)域,不收外部的的影響。簡單的來說,在代碼塊中,使用let命令聲明變量之前,變量都是不能用的。例子:
③、let不允許在同一個作用域內(nèi)重復(fù)聲明同一個變量。
好了,現(xiàn)在再來講一講上文提及到的一個東東:“塊級作用域”。在es5中只有“全局作用域”和“函數(shù)作用域”。這使得我在剛開始學(xué)的時候一臉蒙蔽,其他語言都有塊級作用域(比如C語言),但js就沒有。幸好在es6中加入了“塊級作用域”的概念,let實(shí)際上為javascript新增了塊級作用域,有了塊級作用域,就可以避免變量泄露成全局變量,代碼快之間不會受到影響。另外,es6里還規(guī)定了:函數(shù)本身的作用域在其塊級作用域內(nèi)。注意!注意!注意!重要的事說三遍:(如果是在嚴(yán)格模式下,函數(shù)只能在頂級作用域和函數(shù)內(nèi)部聲明,其他情況下【比如:if語句、循環(huán)語句下】就會報錯) :
最后再來說說es6中的新特性之“const”,好吧,其他編程語言里早就有了,但是javascript在es6之前還是沒有~~。這個是用來聲明常量的,其表現(xiàn)為不可修改的,還有就是聲明的同時必須進(jìn)行賦值,否則就會報錯。
注意:①、在作用域方面,它其實(shí)和let作用域相同:只在聲明所在的塊級作用域內(nèi)有效;
②、const命令聲明的常量同樣不存在“變量提升”,同樣存在“暫時性死區(qū)”,必須在聲明后才能使用。
?、?、const也不能重復(fù)聲明常量。
綜合例子:
?、?、對于復(fù)合類型的變量,常量名不指向數(shù)據(jù),而是指向的是數(shù)據(jù)的指針地址,const命令只是保證了地址沒有變,但并不保證數(shù)據(jù)的不變,所以在使用const命令聲明常量為對象時要小心??!其實(shí)我們可以對其對象進(jìn)行“凍結(jié)”,使用Object.freeze()即可實(shí)現(xiàn)。
關(guān)于“ECMAScript6新特性之let、const的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。