最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談ECMAScript6新特性之let、const

 更新時(shí)間:2017年08月02日 08:53:58   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談ECMAScript6新特性之let、const。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

第一次寫(xiě)博客有點(diǎn)緊張,如果說(shuō)的不對(duì)的地方,歡迎大家留言指正。咱們先來(lái)說(shuō)說(shuō)“ECMAScript”這到底是啥玩意兒?它和javascript的關(guān)系又是如何的?首先,在1996年11月的時(shí)候,javascript的創(chuàng)造者(網(wǎng)景公司Netscape)和sun公司聯(lián)合ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))對(duì)javascript進(jìn)行標(biāo)準(zhǔn)化,次年,ECMA發(fā)布262號(hào)標(biāo)準(zhǔn)文件文件(ECMA-262)的第一版,規(guī)定了瀏覽器腳本語(yǔ)言的標(biāo)準(zhǔn)(在這里提個(gè)問(wèn)題:為什么要標(biāo)準(zhǔn)化?),并將這種語(yǔ)言稱(chēng)為ECMAScript,這個(gè)版本就是1.0版的。這個(gè)標(biāo)準(zhǔn)一開(kāi)始就是針對(duì)與javascript來(lái)制定的,但是沒(méi)有稱(chēng)之為“javascript”,這其中有兩個(gè)原因,一是:商標(biāo);二是:想體現(xiàn)這門(mén)語(yǔ)言的規(guī)格制定者是ECMA,這樣有利于保證開(kāi)發(fā)性和中立性。所以,ECMAScript和javascript之間的關(guān)系就是,前者來(lái)制定規(guī)格,后者來(lái)實(shí)現(xiàn)(另外的ECMAScript的實(shí)現(xiàn)還有JScript和ActionScript)。一般的情況下,這兩個(gè)詞是可以互換的。

接下來(lái)來(lái)介紹一下es6中的新特性之“l(fā)et”。首先,這個(gè)玩意兒其實(shí)和var這個(gè)命令類(lèi)似,都是用于聲明變量的,但是所聲明的變量只在let命令所在的代碼塊內(nèi)有效(這里涉及到塊級(jí)作用域的概念,然而這個(gè)概念也是es6中提出來(lái)的。在后面我再來(lái)講。PS:在其他編程語(yǔ)言中,早就有塊級(jí)了)

上面的兩張圖就反映出了let所聲明的變量只在let命令所在的代碼塊內(nèi)有效。下面來(lái)舉個(gè)例子:

發(fā)現(xiàn)區(qū)別了嗎?var聲明的變量它是全局范圍內(nèi)都有效的,每一次的循環(huán),新的i值都會(huì)覆蓋舊值,導(dǎo)致最后輸出的是最后一輪的i值(當(dāng)然,也可以利用閉包來(lái)解決這個(gè)問(wèn)題【第三張圖】)。如果使用的是let,聲明的變量?jī)H在塊級(jí)作用域內(nèi)有效,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)i其實(shí)都是一個(gè)新的變量。在期間我發(fā)現(xiàn)了一個(gè)更神奇的東西,請(qǐng)看下面一張圖:

注意①、let不像var一樣會(huì)發(fā)生“變量提升”的現(xiàn)象,所以,使用之前,必須先聲明,不然就會(huì)報(bào)錯(cuò)。

②、暫時(shí)性死區(qū)(temporal dead zone,簡(jiǎn)稱(chēng)TDZ),只要塊級(jí)作用域內(nèi)有l(wèi)et命令,它所聲明的變量就會(huì)綁定這個(gè)區(qū)域,不收外部的的影響。簡(jiǎn)單的來(lái)說(shuō),在代碼塊中,使用let命令聲明變量之前,變量都是不能用的。例子:

③、let不允許在同一個(gè)作用域內(nèi)重復(fù)聲明同一個(gè)變量。

好了,現(xiàn)在再來(lái)講一講上文提及到的一個(gè)東東:“塊級(jí)作用域”。在es5中只有“全局作用域”和“函數(shù)作用域”。這使得我在剛開(kāi)始學(xué)的時(shí)候一臉蒙蔽,其他語(yǔ)言都有塊級(jí)作用域(比如C語(yǔ)言),但js就沒(méi)有。幸好在es6中加入了“塊級(jí)作用域”的概念,let實(shí)際上為javascript新增了塊級(jí)作用域,有了塊級(jí)作用域,就可以避免變量泄露成全局變量,代碼快之間不會(huì)受到影響。另外,es6里還規(guī)定了:函數(shù)本身的作用域在其塊級(jí)作用域內(nèi)。注意!注意!注意!重要的事說(shuō)三遍:(如果是在嚴(yán)格模式下,函數(shù)只能在頂級(jí)作用域和函數(shù)內(nèi)部聲明,其他情況下【比如:if語(yǔ)句、循環(huán)語(yǔ)句下】就會(huì)報(bào)錯(cuò)) :

最后再來(lái)說(shuō)說(shuō)es6中的新特性之“const”,好吧,其他編程語(yǔ)言里早就有了,但是javascript在es6之前還是沒(méi)有~~。這個(gè)是用來(lái)聲明常量的,其表現(xiàn)為不可修改的,還有就是聲明的同時(shí)必須進(jìn)行賦值,否則就會(huì)報(bào)錯(cuò)。

注意:①、在作用域方面,它其實(shí)和let作用域相同:只在聲明所在的塊級(jí)作用域內(nèi)有效;

?、凇onst命令聲明的常量同樣不存在“變量提升”,同樣存在“暫時(shí)性死區(qū)”,必須在聲明后才能使用。

?、?、const也不能重復(fù)聲明常量。

綜合例子:

 ④、對(duì)于復(fù)合類(lèi)型的變量,常量名不指向數(shù)據(jù),而是指向的是數(shù)據(jù)的指針地址,const命令只是保證了地址沒(méi)有變,但并不保證數(shù)據(jù)的不變,所以在使用const命令聲明常量為對(duì)象時(shí)要小心??!其實(shí)我們可以對(duì)其對(duì)象進(jìn)行“凍結(jié)”,使用Object.freeze()即可實(shí)現(xiàn)。

以上這篇淺談ECMAScript6新特性之let、const就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • getElementById().innerHTML與getElementById().value的區(qū)別

    getElementById().innerHTML與getElementById().value的區(qū)別

    這篇文章主要介紹了getElementById().innerHTML與getElementById().value的區(qū)別,因?yàn)榻?jīng)常有新手朋友問(wèn)到,特整理一下,需要的朋友可以參考下
    2016-10-10
  • 基于網(wǎng)址URL中特殊字符轉(zhuǎn)義編碼

    基于網(wǎng)址URL中特殊字符轉(zhuǎn)義編碼

    這篇文章主要介紹了網(wǎng)址URL中特殊字符轉(zhuǎn)義編碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 了解ESlint和其相關(guān)操作小結(jié)

    了解ESlint和其相關(guān)操作小結(jié)

    這篇文章主要介紹了了解ESlint和其相關(guān)操作小結(jié),詳細(xì)的介紹了什么是ESlint以及ESlint規(guī)范,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • JavaScript中的acos()方法使用詳解

    JavaScript中的acos()方法使用詳解

    這篇文章主要介紹了JavaScript中的acos()方法使用詳解,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-06-06
  • 對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法

    對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法

    這篇文章主要介紹了對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法,采用了一個(gè)名為Okapi BM25的算法,文中亦有介紹,需要的朋友可以參考下
    2015-06-06
  • Javascript valueOf 使用方法

    Javascript valueOf 使用方法

    返回指定對(duì)象的原始值。
    2008-12-12
  • ajax上傳時(shí)參數(shù)提交不更新等相關(guān)問(wèn)題

    ajax上傳時(shí)參數(shù)提交不更新等相關(guān)問(wèn)題

    我感覺(jué)好像這個(gè)上傳插件只在第一次點(diǎn)擊的時(shí)候?qū)嵗?shù)傳給后臺(tái),所以以后值都是不變的,應(yīng)該怎么解決這個(gè)問(wèn)題呢
    2012-12-12
  • JavaScript函數(shù)中上下文有哪些規(guī)則

    JavaScript函數(shù)中上下文有哪些規(guī)則

    上下文是從英文context翻譯過(guò)來(lái),指的是一種環(huán)境。在軟件工程中,上下文是一種屬性的有序序列,它們?yōu)轳v留在環(huán)境內(nèi)的對(duì)象定義環(huán)境。在對(duì)象的激活過(guò)程中創(chuàng)建上下文,對(duì)象被配置為要求某些自動(dòng)服務(wù)。又比如計(jì)算機(jī)技術(shù)中,相對(duì)于進(jìn)程而言,上下文就是進(jìn)程執(zhí)行時(shí)的環(huán)境
    2021-10-10
  • 淺析js中mvvm模式實(shí)現(xiàn)的原理

    淺析js中mvvm模式實(shí)現(xiàn)的原理

    在本篇文章中我們給大家分享了關(guān)于js中mvvm模式實(shí)現(xiàn)的原理的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。
    2018-10-10
  • Javascript對(duì)象字面量的理解

    Javascript對(duì)象字面量的理解

    這篇文章主要介紹對(duì)Javascript對(duì)象字面量的理解,通俗易懂,需要的朋友可以參考下。
    2016-06-06

最新評(píng)論

安多县| 揭阳市| 昌吉市| 周口市| 徐水县| 临海市| 南召县| 闽清县| 龙江县| 巨鹿县| 张北县| 丹凤县| 龙胜| 信阳市| 桦川县| 济源市| 曲周县| 柳林县| 丰镇市| 安顺市| 宿松县| 任丘市| 九龙坡区| 高州市| 信丰县| 曲周县| 平果县| 中超| 宁强县| 鹤岗市| 常山县| 新郑市| 双流县| 松滋市| 广元市| 宣威市| 房山区| 格尔木市| 拜泉县| 同江市| 秦安县|