国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

            ES6中的let和const和解構(gòu)賦值

            2021-3-24    前端達(dá)人

            ES6中的let和const和解構(gòu)賦值

            什么是ES6?

            ES6, 全稱 ECMAScript 6.0 ,是 JavaScript 的下一個版本標(biāo)準(zhǔn),2015.06 發(fā)版。



            為什么要使用ES6?

            每一次標(biāo)準(zhǔn)的誕生都意味著語言的完善,功能的加強(qiáng)。js語言本身也有一些令人不滿的地方



            1.變量提升特性增加了程序運(yùn)行的不可預(yù)測性 。



            變量提升可以簡單看以下代碼了解下:



            console.log(a);

            var a=1;

            //console.log(a)會輸出undefined



            這段代碼也可以這樣表示



            var a;

            console.log(a);

            a=10;

            //依舊輸出undefined



            這就是變量提升!



            2.語法過于松散,實現(xiàn)相同的功能,不同的人可以會寫出不同的代碼,閱讀性較低。



            所以:ES6 ,目標(biāo)是使JavaScript語言可以用來編寫復(fù)雜的大型應(yīng)用程序,成為企業(yè)級開發(fā)語言。我們沒有理由不去學(xué)習(xí)ES6。



            let關(guān)鍵字

            ES6中新增的用于聲明變量的關(guān)鍵字。主要是替代var。



            特征:1.let聲明的變量只在所處的塊級有效,具有塊級作用域! 在ES6之前JS只有全局作用域和局部作用域。



            塊級作用域:通俗來講就是在一對大括號中產(chǎn)生的作用域,塊級作用域中的變量只能在大括號中訪問,在大括號外面是訪問不到的。



            可以看以下代碼:



                            if(true){

                            let a=10;

                            console.log(a);//輸出10

                            }

                            console.log(a);//報錯提示a沒有定義



                            {

                                let b=10;

                                console.log(b);//輸出10

                            }

                            console.log(b);//報錯提示b沒有定義



                          if(true){

                          let c=20;

                          console.log(c)//輸出20

                          if(true){

                             let d=30;

                             console.log(c)//輸出 20

                          }

                          console.log(d);//報錯d沒有定義

                        }



            在for循環(huán)中也起到作用,根據(jù)不同的需求選擇let和var!

            例如:



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

                               console.log(i) //輸出10

            for(let j=0;j<10;j++){}

                               console.log(j) //報錯 j沒有定義



            好處:在業(yè)務(wù)邏輯比較復(fù)雜的時候,可以放在內(nèi)層變量覆蓋外層變量!



            2.存在let 一開始就會形成封閉的作用域 使用let命名聲明變量前 ,變量不可用,必須先聲明后使用,不存在變量提升

            例如:



                           if(true){

                            console.log(temp);//報錯

                            let temp=1;

                           }`



            3.let 不允許重復(fù)聲明 在一個作用域內(nèi)。



            例如:



                            if(true){

                            let temp;

                            console.log(temp);//報錯Identifier 'temp' has already been declared

                            let temp=1;

                            }



                           if(true){

                            var temp=10;

                            let temp=5;

                            console.log(temp);//報錯 錯誤和上面一致

                           }



            但是不在一個作用域內(nèi)可以 例如:



                          {

                            let x=10;

                            console.log(x);//輸出10

                        }



                        {

                            let x=5;

                            console.log(5);//輸出5

                        }



            const關(guān)鍵字

            const一般用來聲明常量,聲明一個只讀的常量。



            特征:1.一旦聲明其值不能改變必須立即初始化

            例如:



             const a; //這樣什聲明會直接報錯!!!

            1

            這樣聲明沒有初始化會直接報錯!



            2.對于對象:存的不是對象的本身, 而是對象的引用, 引用地址 ,地址不變, 對象可拓展!

            例如:



                       const foo={y:10};

                       foo.x=100;

                       console.log(foo.x);//輸出100

            1

            2

            3

            對象可以擴(kuò)展



            但是對象不能改變

            例如:foo={n:1000}; 會報錯!



            作用域:



              var v1=100;

                function f1(){

                    console.log(v1,v2); //undefined   no defined 

                    var v1=110;

                    let v2=200;

                    function f2(){

                        let v3=300;

                        console.log(v1,v2,v3);//110 200 300

                    }

                    f2();

                    console.log(v1,v2,v3);// 110 200 no defined 

                }

                f1();

                console.log(v1,v2,v3);// 100 no defined no defined



            可以向外面作用域找 不可以向里面作用域找 內(nèi)層變量可能會覆蓋外層變量



            let和var的本質(zhì)區(qū)別:瀏覽器的頂層對象為window Node的為global,var定義的變量會關(guān)聯(lián)到頂層對象中,let和const不會!

            例如:



                     var a =100;

                    console.log(window.a); // 100

                     let b=100;

                    console.log(window.b); //undefined

            1

            2

            3

            4

            如何選擇const和let:數(shù)據(jù)需要變化用let 數(shù)據(jù)不需要變化用const



            解構(gòu)賦值:ES6中允許從數(shù)組中提值,按照對應(yīng)位置,對變量賦值,對象也可以實現(xiàn)解構(gòu)!

            例如:

             {
                let a,b,c;
                [a,b]=[1,2];
                console.log(a,b,c); //輸出 1 2 undefined
            }

            {
                let a,b,c;
                [a,b,...c]=[1,2,3,4,5,6];
                console.log(a);//輸出1
                console.log(b);//輸出2
                console.log(c);//輸出[3,4,5,6]
            }
            {
                let a,b,c;
                [a,b,c=3]=[1,2];
                console.log(a,b,c);//輸出1 2 3
            }
            {
                let a,b;
                [a,b]=[1,2];
                [a,b]=[b,a]
                console.log(a,b);//輸出 2 1
            }
            {
                let a,b;
                ({a,b}={a:1,b:2})
                console.log(a,b);//輸出 1  2
            }
            {
                function fun(){
                    return [1,2,3,4,5,6]
                };
                let a,b;
                [a,,,,b]=fun();
                console.log(a,b);//輸出1 5
            }
            {
                let o={p:42,q:true};
                let {p,q}=o;
                console.log(p,q);//輸出 42 true
            }
            {
                let {a=10,b=5}={a:3};
                console.log(a,b);//輸出 3 5
            }

            {
                let metaData={
                    title:'abc',
                    test:[{
                        title:'test',
                        desc:'description'
                    }]
                }
                let {title:esTitle,test:[{title:cnTitle}]}=metaData;
                console.log(esTitle,cnTitle);//輸出abc test
            }

            解構(gòu)賦值表達(dá)式右邊的部分表示解構(gòu)的源;解構(gòu)表達(dá)式左邊的部分表示解構(gòu)的目標(biāo),如果左右兩邊對比成功就返回右邊的值,如果沒有對比成功就會undefined返回原來的值

            除此之外還可以返回一些函數(shù)和方法


            轉(zhuǎn)自:csdn 作者:勤快的基佬

            藍(lán)藍(lán)設(shè)計www.dzxscac.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

            日歷

            鏈接

            個人資料

            存檔

            主站蜘蛛池模板: 国产精品乱子伦xxxx裸| 亚洲欧美日韩精品成人| 久久精品视频18| 精品二区在线观看| 国产777涩在线 | 美洲| 一区二区在线观看免费| 九一九色国产| 久久九九有精品国产| 久久久久久久伊人| 肥白大屁股bbwbbwhd| 色香欲综合成人免费视频| av毛片在线免费观看| 激情97综合亚洲色婷婷五| 国产成人综合一区人人| 奴性白洁会所调教| 亚洲无色| 少妇高清精品毛片在线视频 | 国产成人人人97超碰超爽8| 广东少妇大战黑人34厘米视频| 操操操综合网| 四虎永久www成人影院| 国产偷抇久久精品a片蜜臀av | 中文字幕人妻一区二| 九九精品超级碰视频| 精产国品一二三产区m553麻豆| jizz性欧美2| 白丝乳交内射一二三区| 国产午夜精品免费一区二区三区| 亚洲人成免费| 天天操天天爱天天干| 亚洲粉嫩高潮的18p| 五月天综合网站| 国产精品成人一区二区三区视频| 精品av一区二区三区不卡| ass精品国模裸体pics| 精彩视频一区二区三区| 国产精品亚洲а∨无码播放不卡| 亚欧美日韩香蕉在线播放视频 | 亚洲综合久久久久久888| wwwwww国产| 国产曰批视频免费观看完|