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>

 

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