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

JavaScript es6中var、let以及const三者區(qū)別案例詳解

 更新時(shí)間:2021年09月01日 17:05:34   作者:Joker丶  
這篇文章主要介紹了JavaScript es6中var、let以及const三者區(qū)別案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

首先,一個(gè)常見的問題是,ECMAScript 和 JavaScript 到底是什么關(guān)系?

        ECMAScript是一個(gè)國(guó)際通過的標(biāo)準(zhǔn)化腳本語(yǔ)言。JavaScript由ECMAScript和DOM、BOM三者組成??梢院?jiǎn)單理解為:ECMAScript是JavaScript的語(yǔ)言規(guī)范,JavaScript是ECMAScript的實(shí)現(xiàn)和擴(kuò)展。

        2011 年,ECMAScript 5.1 版發(fā)布。之前我們大部分人用的也就是ES5

        2015 年 6 月,ECMAScript 6 正式通過,成為國(guó)際標(biāo)準(zhǔn)。

1. 塊級(jí)作用域 {}

        ES5 中作用域有:全局作用域、函數(shù)作用域。沒有塊作用域的概念。

        ES6 中新增了塊級(jí)作用域。塊作用域由 { } 包括,if語(yǔ)句和 for語(yǔ)句里面的{ }也屬于塊作用域。

<script type="text/javascript">
	
    {
        var a = 1;
        console.log(a); // 1
    }
    console.log(a); // 1
    // 通過var定義的變量可以跨塊作用域訪問到。
 
    (function A() {
        var b = 2;
        console.log(b); // 2
    })();
    // console.log(b); // 報(bào)錯(cuò),
    // 可見,通過var定義的變量不能跨函數(shù)作用域訪問到
 
    if(true) {
        var c = 3;
    }
    console.log(c); // 3
    for(var i = 0; i < 4; i ++) {
        var d = 5;
    };
    console.log(i); // 4   (循環(huán)結(jié)束i已經(jīng)是4,所以此處i為4)
    console.log(d); // 5
    // if語(yǔ)句和for語(yǔ)句中用var定義的變量可以在外面訪問到,
    // 可見,if語(yǔ)句和for語(yǔ)句屬于塊作用域,不屬于函數(shù)作用域。
 
</script>

2. var、let、const的區(qū)別

  1. var定義的變量,沒有塊的概念,可以跨塊訪問, 不能跨函數(shù)訪問。
  2. let定義的變量,只能在塊作用域里訪問,不能跨塊訪問,也不能跨函數(shù)訪問。
  3. const用來(lái)定義常量,使用時(shí)必須初始化(即必須賦值),只能在塊作用域里訪問,而且不能修改。
<script type="text/javascript">
    // 塊作用域
    {
        var a = 1;
        let b = 2;
        const c = 3;
        // c = 4; // 報(bào)錯(cuò)
        var aa;
        let bb;
        // const cc; // 報(bào)錯(cuò)
        console.log(a); // 1
        console.log(b); // 2
        console.log(c); // 3
        console.log(aa); // undefined
        console.log(bb); // undefined
    }
    console.log(a); // 1
    // console.log(b); // 報(bào)錯(cuò)
    // console.log(c); // 報(bào)錯(cuò)
 
    // 函數(shù)作用域
    (function A() {
        var d = 5;
        let e = 6;
        const f = 7;
        console.log(d); // 5
        console.log(e); // 6  
        console.log(f); // 7 
 
    })();
    // console.log(d); // 報(bào)錯(cuò)
    // console.log(e); // 報(bào)錯(cuò)
    // console.log(f); // 報(bào)錯(cuò)
</script>

3. const定義的對(duì)象屬性是否可以改變

這是今天面試的時(shí)候碰到的一個(gè)問題,上面說到 const 是不能修改的,于是很痛快的說不能,但是回來(lái)實(shí)際測(cè)試后發(fā)現(xiàn)錯(cuò)了,在此記錄一下。

 const person = {
     name : 'jiuke',
     sex : '男'
 }
 
 person.name = 'test'
 
 console.log(person.name)

運(yùn)行上述代碼,發(fā)現(xiàn)person對(duì)象的name屬性確實(shí)被修改了,這是怎么回事呢?

因?yàn)閷?duì)象是引用類型的,person中保存的僅是對(duì)象的指針,這就意味著,const僅保證指針不發(fā)生改變,修改對(duì)象的屬性不會(huì)改變對(duì)象的指針,所以是被允許的。也就是說const定義的引用類型只要指針不發(fā)生改變,其他的不論如何改變都是允許的。

然后我們?cè)囍薷囊幌轮羔?,讓person指向一個(gè)新對(duì)象,果然報(bào)錯(cuò)

const person = {
   name : 'jiuke',
   sex : '男'
}
 
person = {
   name : 'test',
   sex : '男'
}

到此這篇關(guān)于JavaScript es6中var、let以及const三者區(qū)別案例詳解的文章就介紹到這了,更多相關(guān)JavaScript es6中var、let以及const三者區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實(shí)現(xiàn)貪吃蛇小游戲(加墻)

    js實(shí)現(xiàn)貪吃蛇小游戲(加墻)

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 深入理解JavaScript系列(6) 強(qiáng)大的原型和原型鏈

    深入理解JavaScript系列(6) 強(qiáng)大的原型和原型鏈

    JavaScript 不包含傳統(tǒng)的類繼承模型,而是使用 prototypal 原型模型
    2012-01-01
  • 詳解iframe與frame的區(qū)別

    詳解iframe與frame的區(qū)別

    Frame與Iframe兩者可以實(shí)現(xiàn)的功能基本相同,不過Iframe比Frame具有更多的靈活性,通過本文給大家詳解細(xì)節(jié)iframe與frame的區(qū)別,對(duì)iframe與frame的區(qū)別相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • js中iframe調(diào)用父頁(yè)面的方法

    js中iframe調(diào)用父頁(yè)面的方法

    這篇文章主要介紹了js中iframe調(diào)用父頁(yè)面的方法,可通過window.parent.方法()來(lái)實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • 前端layui?table表格勾選事件以及常見模塊詳解

    前端layui?table表格勾選事件以及常見模塊詳解

    Layui 是一個(gè)非常流行的前端框架,其中的table組件可以幫助您實(shí)現(xiàn)復(fù)選框功能,下面這篇文章主要給大家介紹了關(guān)于前端layui?table表格勾選事件以及常見模塊的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • JavaScript斷言與類型守衛(wèi)及聯(lián)合聲明超詳細(xì)介紹

    JavaScript斷言與類型守衛(wèi)及聯(lián)合聲明超詳細(xì)介紹

    這篇文章主要介紹了JavaScript斷言與類型守衛(wèi)及聯(lián)合聲明,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-11-11
  • JavaScript中參數(shù)傳遞方式詳解

    JavaScript中參數(shù)傳遞方式詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript中參數(shù)傳遞三種方式:按值傳遞、引用傳遞和共享傳遞,文中的示例代碼講解詳細(xì),感興趣的可以了解下
    2023-09-09
  • 優(yōu)雅處理前端異常的幾種方式推薦

    優(yōu)雅處理前端異常的幾種方式推薦

    前端一直是距離用戶最近的一層,隨著產(chǎn)品的日益完善,我們會(huì)更加注重用戶體驗(yàn),而前端異常卻如鯁在喉,甚是煩人,下面這篇文章主要給大家推薦介紹了關(guān)于優(yōu)雅處理前端異常的幾種方式,需要的朋友可以參考下
    2022-08-08
  • 正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法總結(jié)(replace,test,search)

    正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法總結(jié)(replace,test,search)

    這篇文章主要是對(duì)正則表達(dá)式中特殊符號(hào)及正則表達(dá)式的幾種方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • 微信小程序全屏滾動(dòng)字幕的實(shí)現(xiàn)方法詳解

    微信小程序全屏滾動(dòng)字幕的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了微信小程序全屏滾動(dòng)字幕的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論

宝兴县| 稻城县| 藁城市| 惠来县| 南涧| 新宁县| 盐亭县| 堆龙德庆县| 二连浩特市| 通江县| 崇左市| 百色市| 枣阳市| 达拉特旗| 望奎县| 福鼎市| 克山县| 海城市| 册亨县| 临澧县| 泽库县| 蒙山县| 武宁县| 资阳市| 依安县| 梅州市| 太仓市| 奇台县| 东明县| 土默特右旗| 阿鲁科尔沁旗| 巴楚县| 礼泉县| 乌拉特前旗| 株洲市| 中阳县| 田阳县| 宜川县| 铁岭县| 义马市| 临潭县|