js學習之ES6_模式匹配 結構賦值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script type="text/javascript">
       
        // [case1]
        // var a = 10;
        // var b = 20;
        // var c = 30; 
        
        // => 簡化 
        // var a = 10,b = 20, c = 30;

        // => 簡化
        let [a,b,c] = [10,20,30];

        // 檢測賦值 確實成功
        console.log(a,b,c);

        // [case2]
        // 結構賦值,賦值的時候保持結構一樣就可以了
        let [a2,[b2,d2],c2] = [10,[20,40],30];

        // 檢測賦值 確實成功
        console.log(a2,b2,c2,d2);

        // [case3]
        // 結構賦值,不僅僅可以數組,還可以json
        json = {'ajson':60,'bjson':50};
        // 注意啊 這個變量的key 值 必須和json裏面的元素一模一樣
        // 當key值不相同的時候,返回的是undefined
        let {ajson,bjson} = json;

        // 檢測賦值 確實成功
        console.log(ajson,bjson);

        // [case4]
        // 結構賦值,不僅僅可以數組,還可以json
        json = {'ajson2':60,'bjson2':[50,70]};
        // 注意啊 這個變量的key 值 必須和json裏面的元素一模一樣
        // 當key值不相同的時候,返回的是undefined
        let {ajson2,bjson2} = json;

        // 檢測賦值 確實成功
        console.log(ajson2,bjson2);

        // [case5]
        // 然後這個結構賦值有什麼用呢
        // 函數傳值的時候 可以簡化代碼
        function show(atemp = [1,2,3,4,5,6]){
            // var bt = atemp[0];
            // var ct = atemp[1];
            // var dt = atemp[2];
            // var et = atemp[3];
            // var ft = atemp[4];
            // var gt = atemp[5];

            // => 簡化
            let [bt,ct,dt,et,ft,gt] = atemp;

            console.log(bt,ct,dt,et,ft,gt);
        };

        // 檢測賦值 確實成功
        show([2,3,4,5,6,7]);

        // [case6]
        // 比如假設從後臺傳過來,返回來值
        // 應用舉例
        var dataA = {
            'ok' : 1,
            'data' : {
                'top':[1,2,3],
                'center':[4,5,6,7]
            },
            'msg':'請求成功'
        };

        let {ok,data,msg} = dataA;
        if(dataA.ok == 1){

            console.log(dataA.data.top,dataA.data.center,dataA.msg);
        }

        // 備用
        // [caseblank]
        // 檢測賦值 確實成功
        // console.log(ajson,bjson);
    </script>
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章