zoukankan      html  css  js  c++  java
  • es68对象的解构赋值

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>对象的解构赋值</title>
    <script src="../../../vendor/traceur.js"></script>
    <script src="../../../vendor/bootstrap.js"></script>
    <script type="text/traceur">
        var { name, age } = { name: "Conan", age: 28 };
        console.log(name);    //Conan
        console.log(age);    //28
    --------------------------------------------------
        var { name, age, id } = { id: "007", name: "Conan", age: 28 };
        console.log(name);    //Conan
        console.log(age);    //28
        console.log(id);    //007
    --------------------------------------------------
        var { person_name, person_age, person_id } = { id: "007", name: "Conan", age: 28 };
        console.log(person_name);    //undefined
        console.log(person_age);    //undefined
        console.log(person_id);        //undefined
    
        var { name: person_name, age: person_age, id: person_id } = { id: "007", name: "Conan", age: 28 };
        console.log(person_name);    //Conan
        console.log(person_age);    //28
        console.log(person_id);        //007
    
        let object = { first: "Hello", last: "World" };
        let { first: firstName, last: lastName} = object;
        console.log(firstName);    //Hello
        console.log(lastName);    //World
    ------------------------------------------------------
        var { x = 3 } = {};
        console.log(x);    //3
    
        var { x, y = 5 } = { x: 1 };
        console.log(x);    //1
        console.log(y);    //5
    
        var { x, y } = { x: 1 };
        console.log(x);    //1
        console.log(y);    //undefined
        
        var { x, y=5 } = { x: 1 ,y:9};
        console.log(x);    //1
        console.log(y);    //9
    
        var { message: msg = "You Are A Person!" } = {};
        console.log(msg);    //You Are A Person!
        
        var { x = 3 } = { x: undefined };
        console.log(x);    //3
    
        var { y = 3 } = { y: null }; //null优先级最高
        console.log(y);    //null
    ----------------------------------------------------
    
        var x;
        {x} = { x: 1 };  //报错,需要加上小括号
        console.log(x);    //1
        
    -------
        
        var x;
        ({x} = { x: 1 });//已声明变量的解构赋值
        console.log(x);    //1
    -----------------------------------------------------
        let { sin, cos, tan, log } = Math;
        console.log(sin(Math.PI/6));        //0.49999999999999994
        console.log(Math.sin(Math.PI/6));    //0.49999999999999994
        
        console.log(cos(Math.PI/6));        //0.8660254037844387
        console.log(Math.cos(Math.PI/6));    //0.8660254037844387
        
        console.log(tan(Math.PI/6));        //0.5773502691896257
        console.log(Math.tan(Math.PI/6));    //0.5773502691896257
        
        console.log(log(Math.PI/6));        //-0.6470295833786549
        console.log(Math.log(Math.PI/6));    //-0.6470295833786549
    
    </script>
    </head>
    <body>
    
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>字符串的解构赋值</title>
    <script src="../../../vendor/traceur.js"></script>
    <script src="../../../vendor/bootstrap.js"></script>
    <script type="text/traceur">
    //字符串被转换成了一个类似数组的对象。类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。
    
    
        const [ a, b, c, d, e ] = "Hello";//转换成数组,根据下标
        console.log(a);    //H
        console.log(b);    //e
        console.log(c);    //l
        console.log(d);    //l
        console.log(e);    //o
        
        const { length: len } = "Hello";
        console.log(len);    //5
    
        const { length } = "Hello World!";//转换成对象,寻找字符串对象的length属性
        console.log(length);//12
    </script>
    </head>
    <body>
    
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>函数参数的解构赋值</title>
    <script src="../../../vendor/traceur.js"></script>
    <script src="../../../vendor/bootstrap.js"></script>
    <script type="text/traceur">
        function sum([x, y]) {//传的是数组
            return x + y;
        };
        console.log(sum([1, 2]));    //3
    -------------------------------------------
        function fun ({x = 1, y = 2} = {}) {
            return [x, y];//输出数组
        };
        console.log(fun({x: 100, y: 200}));    //[100, 200]
        console.log(fun({x: 100}));            //[100, 2]
        console.log(fun({}));                //[1, 2]
        console.log(fun());                    //[1, 2]
    --------------------------------------------
        function fun ({x, y} = { x: 1, y: 2 }) {
            return [x, y];
        };
    
        console.log(fun({x: 100, y: 200}));    //[100, 200],{x, y} = { x: 1, y: 2 }没有执行
        console.log(fun({x: 100}));            //[100, undefined],{x, y} = { x: 1, y: 2 }没有执行
        console.log(fun({}));                //[undefined, undefined],{x, y} = { x: 1, y: 2 }没有执行
        console.log(fun());                    //[1, 2],{x, y} = { x: 1, y: 2 }执行了
    </script>
    </head>
    <body>
    
    </body>
    </html>
  • 相关阅读:
    慕课网-安卓工程师初养成-3-2 Java中的算术运算符
    慕课网-安卓工程师初养成-3-1 什么是运算符
    慕课网-安卓工程师初养成-2-13 练习题
    慕课网-安卓工程师初养成-2-12 如何在Java中使用注释
    慕课网-安卓工程师初养成-2-11 Java常量
    慕课网-安卓工程师初养成-2-10 Java中的强制类型转换
    试把一个正整数n拆分为若干个
    求解两个给定正整数m、n的最大公约数(m、n)
    统计n!尾部零
    横竖折对称方阵
  • 原文地址:https://www.cnblogs.com/yaowen/p/6965708.html
Copyright © 2011-2022 走看看