欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ECMAScript中var let const常見問題及區(qū)別詳解

 更新時(shí)間:2023年02月02日 16:25:48   作者:肥晨  
這篇文章主要為大家介紹了ECMAScript中var let const常見問題及區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

在ECMAScript中,有3個(gè)關(guān)鍵字可以用于聲明變量。分別是:var、let和const。其中,var在所有ECMAScript都是可以使用的,但是let和const需要在ECMAScript6及其以上版本才可以使用。

let和const的行為基本一致,但是其中有一個(gè)比較重要的一個(gè)區(qū)別,就是const用它聲明變量時(shí)必須同時(shí)初始化變量,且嘗試修改const聲明的變量會(huì)導(dǎo)致運(yùn)行錯(cuò)誤。所以常有人直接理解為const用于聲明常量。

一:作用域

var是函數(shù)作用域。

let和const是塊級(jí)作用域。

也就是說var聲明的變量出函數(shù)時(shí)就會(huì)被銷毀,而let和const聲明的變量出塊級(jí)內(nèi)部就會(huì)被銷毀。

下面使用for舉例:

for中的變量聲明,也是var和let的區(qū)別之一。

 for (var i = 0; i < 5; i++) {
            setTimeout(() => {
                console.log(i);
            }, 0);
        } //5 5 5 5 5
        for (var i = 0; i < 5; i++) {
            setTimeout(() => {
                console.log(i);
            }, 0);
        } //0 1 2 3 4

 造成這種現(xiàn)象的原因就是:var可以滲透到循環(huán)體外部,在退出循環(huán)的時(shí)候,迭代變量保存的是導(dǎo)致循環(huán)退出的值。而let的是因?yàn)樽饔糜蚍聪抻趂or循環(huán)塊的內(nèi)部,迭代循環(huán)聲明一個(gè)新的變量,每個(gè)setTimeout引用的都是不同的變量實(shí)例。

二:優(yōu)先級(jí)

三個(gè)關(guān)鍵字之間沒有優(yōu)先級(jí),按照聲明順序。

三:全局聲明區(qū)別

let和var的不同是,let不會(huì)成為window對(duì)象的屬性。

        var name = "Matt".
        console.log(window.name); //Matt
        let name = "Matt"
        console.log(window.name);//undefined

四:變量提升

這也就是let和var的一個(gè)重要的區(qū)別,就是let聲明的變量不會(huì)在作用域中被提升。

        console.log(name); //undefined
        var name = "Matt";
        console.log(name); //ReferenceError: name is not defined
        let name = "Matt"

 在代碼解析時(shí),JavaScript引擎也會(huì)注意到后面的let(也就是常談到的“類似提升行為”),只不過在此之前不能操作這個(gè)被聲明的變量,不然就會(huì)送給你漂亮的紅色ReferenceError。而這個(gè)瞬間也被稱之為“暫時(shí)性死區(qū)”。也算是在某些方面限制了代碼的規(guī)范度吧。

其他:

1.在ES6中明確規(guī)定,在{}中出現(xiàn)let和const,就會(huì)被限制在里面(也就是塊級(jí)作用域)。

2.函數(shù)提升優(yōu)先級(jí)大于var的變量提升(還是不要重名比較好,你想想要是你們部門有人和你重名重姓會(huì)多麻煩)。

以上就是ECMAScript中var let const常見問題及區(qū)別詳解的詳細(xì)內(nèi)容,更多關(guān)于ECMAScript中var let const區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于JavaScript如何實(shí)現(xiàn)私有成員的語法特征及私有成員的實(shí)現(xiàn)方式

    基于JavaScript如何實(shí)現(xiàn)私有成員的語法特征及私有成員的實(shí)現(xiàn)方式

    本文給大家介紹基于JavaScript如何實(shí)現(xiàn)私有成員的語法特征及私有成員的實(shí)現(xiàn)方式,涉及到j(luò)avascript語法特征相關(guān)知識(shí),對(duì)本文感興趣的朋友快來一起學(xué)習(xí)吧
    2015-10-10
  • js自定義事件及事件交互原理概述(一)

    js自定義事件及事件交互原理概述(一)

    在JS中事件是JS與瀏覽器交互的主要途徑,本文主要介紹下最簡(jiǎn)單的自定義事件,不過還有很多缺陷,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)自定義事件有所幫助
    2013-02-02
  • js自調(diào)用匿名函數(shù)的三種寫法(推薦)

    js自調(diào)用匿名函數(shù)的三種寫法(推薦)

    下面小編就為大家?guī)硪黄猨s自調(diào)用匿名函數(shù)的三種寫法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • JavaScript循環(huán)遍歷的24個(gè)方法,你都知道嗎

    JavaScript循環(huán)遍歷的24個(gè)方法,你都知道嗎

    這篇文章主要給大家介紹了關(guān)于JavaScript循環(huán)遍歷的24個(gè)方法,文中對(duì)每種方法都給出了詳細(xì)的實(shí)例代碼,方便大家理解學(xué)習(xí),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • javascript動(dòng)畫淺析

    javascript動(dòng)畫淺析

    最近一直在弄手機(jī)端的游戲,接觸到各種動(dòng)畫。加之對(duì)之前的自己那個(gè)動(dòng)畫類不滿意,就有心想寫個(gè)新的。然后翻看各種博客,查資料。也學(xué)到一些新的東西
    2012-08-08
  • JavaScript Uploadify文件上傳實(shí)例

    JavaScript Uploadify文件上傳實(shí)例

    這篇文章主要為大家詳細(xì)介紹了Uploadify文件上傳小實(shí)例,一個(gè)簡(jiǎn)單的jsp上傳小功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 詳解JS實(shí)現(xiàn)簡(jiǎn)單的時(shí)分秒倒計(jì)時(shí)代碼

    詳解JS實(shí)現(xiàn)簡(jiǎn)單的時(shí)分秒倒計(jì)時(shí)代碼

    這篇文章主要介紹了JS時(shí)分秒倒計(jì)時(shí)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 讓你5分鐘掌握9個(gè)JavaScript小技巧

    讓你5分鐘掌握9個(gè)JavaScript小技巧

    這篇文章是國外翻譯JavaScript小技巧,幾個(gè)不錯(cuò)的知識(shí)點(diǎn),方便學(xué)習(xí)js的朋友,感覺內(nèi)容非常不錯(cuò)特分享一下,需要的朋友可以參考下
    2018-06-06
  • JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端

    JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)動(dòng)態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • javascript if條件判斷方法小結(jié)

    javascript if條件判斷方法小結(jié)

    今天在為網(wǎng)站增加一些代碼功能的時(shí)候,需要用到if條件判斷,發(fā)現(xiàn)簡(jiǎn)寫方法忘了,這里特整理下
    2014-05-05

最新評(píng)論