真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ES6學(xué)習(xí)筆記第二章-創(chuàng)新互聯(lián)

let 和 const命令

創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、H5場景定制、網(wǎng)站制作、成都品牌網(wǎng)站建設(shè)、小程序設(shè)計服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

    1 let命令

    用法:

    ES6新增let命令,用于聲明變量,用法類似var,只是let聲明的變量是塊級作用域內(nèi)有效

    例:

    {

       let a = 10;

        var b = 1;

    }

    a // a is not defined

    b // 1

    根據(jù)返回值可以看出,let聲明變量時的作用域只在其代碼塊內(nèi)

    for 循環(huán)的計數(shù)器就很適合使用let來聲明變量。

    var a = [];

    for (var i = 0; i<10; i++){

        a[i] = function(){

            console.log(i);

        };

    }

    a[6]();//10

    如果用let聲明變量i;

    a[6]();//6

    因為let聲明的i只在本輪循環(huán)內(nèi)有效。所以每次循環(huán)的i其實都是新的變量,于是輸出6。

    let聲明變量不存在變量提升;

    例:

    console.log(foo);

    let foo = 2;

    執(zhí)行會報錯,但是如果用var聲明,得到的結(jié)果就是2。

    暫時性死區(qū):

    只要塊級作用域內(nèi)存在let命令,它所聲明的變量就“綁定這個區(qū)域”,不受外部影響。

    例

    var tmp =123 ;

    if(true){

        tmp = 'abc';

        let tmp;

     }

    報錯,let綁定了if內(nèi)的塊級作用域,在let聲明變量前,對tmp賦值會報錯。

    ES6明確規(guī)定,如果區(qū)塊 存在let和const命令,則這個區(qū)塊對這些命令聲明的變量從一開始就形成封閉作用域。

    在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的。語法上稱“暫時性死區(qū)”,簡稱TDZ。

    let不允許在相同作用域內(nèi)重復(fù)聲明同一個變量。(這個就不解釋了)

  2.塊級作用域到底是個啥

    ES5只有函數(shù)作用域和全局作用域,沒有塊級作用域,那么會帶來以下不合理情況:

  例1

    var tmp = new Date();

    funciton f(){

        console.log(tmp);

        if(false){

            var tmp = "hello world";

        }

    }

    f() //undefined;

    變量提升內(nèi)層tmp變量覆蓋了外層的tmp變量

  例2

     for 循環(huán)計數(shù)的變量泄露為全局變量。

    ES6的塊級作用域

    function f1(){

        let n = 5;

        if(true){

            let n = 10;

        }

        console.log(n);//5

    }

    最后輸出5,表明外層代碼不受內(nèi)層代碼塊的影響。如果使用var, 最后的輸出值為10.

    ES6允許塊級作用域任意嵌套;

    另外ES6規(guī)定,函數(shù)本身作用域在其所在的塊級作用域內(nèi)。

  fuction f(){ console.log(1)};

    (function (){

        function f(){
            console.log(2);
        }

        f();

    }());

    ES5//2,

    ES6//1。

    嚴(yán)格模式下,函數(shù)只能在頂層作用域和函數(shù)內(nèi)聲明,其他情況(if,for)下的聲明都會報錯。

3.const命令

    const 用來聲明常量。 一旦聲明,其值不可改變。

    const 作用域等同于let,只在聲明所在的塊級作用域內(nèi)有效。

    const 命令只是保證變量名指向的地址不變,并不保證該地址的數(shù)據(jù)不變,所以將一個對象聲明為常量必須非常小心。

    例

    const a=[];

    a.push("hello");//可執(zhí)行

    a.length = 0; //可執(zhí)行

    a = ['Dave'];// 報錯。

    數(shù)組本身是可寫的,但是要把另一個數(shù)組賦值給a,就會報錯。

    如果想讓對面被凍結(jié),本身也不可寫,應(yīng)該使用Object.freeze方法。

    ES6一共6中聲明變量的方法:

    var function let const import class

4.跨模塊常量

    // constants.js 模塊

    export const A= 1;

    export const B= 3;

    export const C= 4;

    // test1.js 模塊

    import * as constants from './constants';

    console.log(constanst.A);//1

    console.log(constanst.B);//3

    //test2.js模塊

    import {A,B} from './constants';

    console.log(A);//1

    console.log(B);//3

5.全局對象的屬性

  ES5:

    window.a = 1;

    a //1;

    a = 2;

    window.a //2

  ES6:

    let b = 1;

    window.b // undefined;

    ES6規(guī)定 var 命令和function 命令聲明的全局變量依舊是全局對象的屬性

    let命令 、 const命令、 class命令聲明的全局變量不屬于全局對象的屬性

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文題目:ES6學(xué)習(xí)筆記第二章-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/djggpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部