<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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        深入理解ES6之數據解構的用法

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

        深入理解ES6之數據解構的用法

        深入理解ES6之數據解構的用法:一 對象解構 對象解構語法在賦值語句的左側使用了對象字面量 let node = { type: true, name: false } //既聲明又賦值 let { type, name } = node; //或者先聲明再賦值 let type, name ({type,name} = node); conso
        推薦度:
        導讀深入理解ES6之數據解構的用法:一 對象解構 對象解構語法在賦值語句的左側使用了對象字面量 let node = { type: true, name: false } //既聲明又賦值 let { type, name } = node; //或者先聲明再賦值 let type, name ({type,name} = node); conso

        一 對象解構

        對象解構語法在賦值語句的左側使用了對象字面量

        let node = {
         type: true,
         name: false
        }
        
        //既聲明又賦值
        let {
         type,
         name
        } = node;
        
        //或者先聲明再賦值
        let type, name
        ({type,name} = node);
        console.log(type);//true
        console.log(name);//false

        type與name標識符既聲明了本地變量,也讀取了對象的相應屬性值。

        解構賦值表達式的值為表達式右側的值。當解構表達式的右側的計算結果為null或者undefined時,會拋出錯誤。

        默認值

        當你使用解構賦值語句時,如果所指定的本地變量在對象中沒有找到同名屬性,那么該變量會被賦值為undefined

        let node = {
         type: true,
         name: false
        },
         type, name, value;
        ({type,value,name} = node);
        
        console.log(type);//true
        console.log(name);//false
        console.log(value);//undefined
        
        

        你可以選擇性地定義一個默認值,以便在指定屬性不存在時使用該值。

        let node = {
         type: true,
         name: false
         },
         type, name, value;
        ({
         type,
         value = true,
         name
        } = node);
        
        console.log(type);//true
        console.log(name);//false
        console.log(value);//true

        賦值給不同的本地變量名

        let node = {
         type: true,
         name: false,
         value: "dd"
        }
        let {
         type: localType,
         name: localName,
         value: localValue = "cc"
        } = node;
        console.log(localType);
        console.log(localName);
        console.log(localValue);
        

        type:localType這種語法表示要讀取名為type的屬性,并把它的值存儲在變量localType上。該語法與傳統對象字面量的語法相反

        嵌套的對象結構

        let node = {
        type: "Identifier",
        name: "foo",
        loc: {
         start: {
         line: 1,
         column: 1
         },
         end: {
         line: 1,
         column: 4
         }
        }
        }
        
        let {
        loc: localL,
        loc: {
         start: localS,
         end: localE
        }
        } = node;
        
        console.log(localL);// start: {line: 1,column: 1},end: {line: 1,column: 4}
        console.log(localS);//{line: 1,column: 1}
        console.log(localE);//{line: 1,column: 4}
        

        當冒號右側存在花括號時,表示目標被嵌套在對象的更深一層中(loc: {start: localS,end: localE})

        二 數據解構

        數組解構的語法看起來跟對象解構非常相似,只是將對象字面量換成了數組字面量。

        let colors = ["red", "blue", "green"];
        let [firstC, secondC, thirdC, thursC = "yellow"] = colors;
        console.log(firstC//red
        console.log(secondC);//blue
        console.log(thirdC);//green
        console.log(thursC);//yellow

        你也可以在解構模式中忽略一些項,并只給感興趣的項提供變量名。

        let colors = ["red","green","blue"];
        
        let [,,thirdC] = colors;
        console.log(thirdC);//blue
        

        thirdC之前的逗號是為數組前面的項提供的占位符。使用這種方法,你就可以輕易從數組任意位置取出值,而無需給其他項提供名稱。

        解構賦值

        let colors = ["red","green","blue"],
         firstColor = "black",
         secondColor = "purple";
        [firstColor,secondColor] = colors;
        console.log(firstColor);//red
        console.log(secondColor);//green

        數組解構有一個非常獨特的用例,能輕易的互換兩個變量的值。

        let a =1,b =2;
        [a,b] = [b,a];
        console.log(a);//2
        console.log(b);//1

        嵌套的解構

        let colors = ["red", ["green", "blue"], "yellow"];
        let [firstC, [, ssc]] = colors;
        console.log(ssc);//blue

        剩余項

        let colors = ["red", "green", "blue"];
        let [firstC, ...restC] = colors;
        console.log(firstC);
        console.log(...restC);
        console.log(restC[0]);//green
        console.log(restC[1]);//blue

        使用剩余項可以進行數組克隆

        let colors = ["red", "green", "blue"];
        let [...restC] = colors;
        console.log(restC);//["red", "green","blue"]

        三 混合解構

        let node = {
        type: "Identifier",
        name: 'foo',
        loc: {
         start: {
         line: 1,
         column: 1
         },
         end: {
         line: 1,
         column: 4
         }
        },
        range: [0, 3]
        }
        
        let {
        type,
        name: localName,
        loc: {
         start: {
         line: ll
         },
         end: {
         column: col
         }
        },
        range: [, second]
        } = node;
        
        console.log(type);//Identifier
        console.log(localName);//foo
        console.log(ll);//1
        console.log(col);//4
        console.log(second);//3
        

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

        文檔

        深入理解ES6之數據解構的用法

        深入理解ES6之數據解構的用法:一 對象解構 對象解構語法在賦值語句的左側使用了對象字面量 let node = { type: true, name: false } //既聲明又賦值 let { type, name } = node; //或者先聲明再賦值 let type, name ({type,name} = node); conso
        推薦度:
        標簽: 使用 的使 深入
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 自拍偷自拍亚洲精品被多人伦好爽| 国内大片在线免费看| 亚洲午夜久久久久久噜噜噜| 深夜福利在线免费观看| 免费在线观看你懂的| 一级毛片无遮挡免费全部| 国产成人精品日本亚洲专区| 美女隐私免费视频看| 久久亚洲中文字幕精品一区| 成人网站免费看黄A站视频| 亚洲国产成人精品无码区在线观看 | 亚洲一区二区电影| 99在线精品视频观看免费| 成人毛片100免费观看| 亚洲精品无码久久久久sm| 午夜无码A级毛片免费视频| 亚洲欧洲日产国码二区首页| 免费在线观看的网站| 青青草国产免费国产是公开| 亚洲人成网站观看在线播放| 中国性猛交xxxxx免费看| 亚洲最大免费视频网| 国产精品深夜福利免费观看 | 国产成人精品免费午夜app| 亚洲一区欧洲一区| 亚洲国产精品成人| 特级无码毛片免费视频尤物| 亚洲永久网址在线观看| 亚洲午夜福利精品无码| 1000部禁片黄的免费看| 黄网站在线播放视频免费观看| 亚洲精品国产品国语在线| 无码日韩人妻av一区免费| 成人在线免费视频| 亚洲日产2021三区在线 | 日本妇人成熟免费中文字幕| 青青草国产免费国产是公开 | 亚洲精品无码人妻无码| 亚洲午夜久久久影院| 国产精品免费观看久久| 两个人日本WWW免费版|