<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        淺談ECMAScript6新特性之let、const

        來源:懂視網 責編:小采 時間:2020-11-27 22:33:41
        文檔

        淺談ECMAScript6新特性之let、const

        淺談ECMAScript6新特性之let、const:第一次寫博客有點緊張,如果說的不對的地方,歡迎大家留言指正。咱們先來說說ECMAScript這到底是啥玩意兒?它和javascript的關系又是如何的?首先,在1996年11月的時候,javascript的創造者(網景公司Netscape)和sun公司聯合ECMA(歐洲計算機制
        推薦度:
        導讀淺談ECMAScript6新特性之let、const:第一次寫博客有點緊張,如果說的不對的地方,歡迎大家留言指正。咱們先來說說ECMAScript這到底是啥玩意兒?它和javascript的關系又是如何的?首先,在1996年11月的時候,javascript的創造者(網景公司Netscape)和sun公司聯合ECMA(歐洲計算機制

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

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

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

        發現區別了嗎?var聲明的變量它是全局范圍內都有效的,每一次的循環,新的i值都會覆蓋舊值,導致最后輸出的是最后一輪的i值(當然,也可以利用閉包來解決這個問題【第三張圖】)。如果使用的是let,聲明的變量僅在塊級作用域內有效,當前的i只在本輪循環有效,所以每一次循環i其實都是一個新的變量。在期間我發現了一個更神奇的東西,請看下面一張圖:

        注意:①、let不像var一樣會發生“變量提升”的現象,所以,使用之前,必須先聲明,不然就會報錯。

        ②、暫時性死區(temporal dead zone,簡稱TDZ),只要塊級作用域內有let命令,它所聲明的變量就會綁定這個區域,不收外部的的影響。簡單的來說,在代碼塊中,使用let命令聲明變量之前,變量都是不能用的。例子:

        ③、let不允許在同一個作用域內重復聲明同一個變量。

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

        最后再來說說es6中的新特性之“const”,好吧,其他編程語言里早就有了,但是javascript在es6之前還是沒有~~。這個是用來聲明常量的,其表現為不可修改的,還有就是聲明的同時必須進行賦值,否則就會報錯。

        注意:①、在作用域方面,它其實和let作用域相同:只在聲明所在的塊級作用域內有效;

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

        ?、邸onst也不能重復聲明常量。

        綜合例子:

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

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

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        淺談ECMAScript6新特性之let、const

        淺談ECMAScript6新特性之let、const:第一次寫博客有點緊張,如果說的不對的地方,歡迎大家留言指正。咱們先來說說ECMAScript這到底是啥玩意兒?它和javascript的關系又是如何的?首先,在1996年11月的時候,javascript的創造者(網景公司Netscape)和sun公司聯合ECMA(歐洲計算機制
        推薦度:
        標簽: let const ecmascript
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 无码天堂亚洲国产AV| 99亚洲精品卡2卡三卡4卡2卡| 亚洲JIZZJIZZ妇女| 一级成人a做片免费| 久久国产乱子伦精品免费不卡| 久久成人国产精品免费软件| 狠狠久久永久免费观看| 爱情岛论坛网亚洲品质自拍| 亚洲人成电影亚洲人成9999网 | 亚洲中文字幕久久精品无码VA| 视频一区二区三区免费观看| 99爱视频99爱在线观看免费| 亚洲国产午夜中文字幕精品黄网站| 亚洲人成高清在线播放| 好男人资源在线WWW免费| 成年人免费观看视频网站| 精品国产亚洲一区二区三区| 亚洲国产精品成人午夜在线观看| 免费观看一级毛片| 老司机午夜性生免费福利| av在线亚洲欧洲日产一区二区| 两性色午夜免费视频| 亚洲AV日韩AV天堂久久| 一级**爱片免费视频| 亚洲午夜福利AV一区二区无码| 美女被免费网站视频在线| 久久久精品国产亚洲成人满18免费网站| 亚洲hairy多毛pics大全| 免费人成视频在线观看不卡| 亚洲一卡2卡3卡4卡5卡6卡| 国产yw855.c免费视频| 亚洲乱色伦图片区小说| www.999精品视频观看免费| 亚洲精品偷拍无码不卡av| 国产在线观看xxxx免费| 在线观看亚洲人成网站| 2021精品国产品免费观看| 久久丫精品国产亚洲av| 香蕉免费一区二区三区| 亚洲男人第一av网站| 色播在线永久免费视频|