发表于: 2018-07-02 20:49:30

1 320


今天完成的事情:完成复盘评审,看了一波ES6的内容


明天计划的事情:开始方案涉及


遇到的问题:暂无


收获:

关于解构赋值:

1 数组的话会按照对应位置,为数组的变量进行赋值;而对象,则是根据对象的名字来进行赋值;只要等号右边的值不是对象或者数组,那就先将其转为对象,而由于undefined和null无法转为对象,所以对他们进行解构赋值都会报错


2 解构赋值允许指定默认值,但是假如还进行赋值,那么后面的值会覆盖默认值,例如

   let [x, y=2] = [1, 3];  // x=1, y=3;


3 默认值可以引用解构赋值的其他变量,前提是该变量已经声明,例如

   let [x=1, y=x] = [1, 2]; // x=1, y=2;


4 对象的解构赋值,关于模式和变量


分号前面都是模式,分号后面是具体的变量

5 函数的参数变量是默认声明的,所以不能用let或者const再次声明
   function foo (x = 5){
       let x = 1; // error
       const x = 2; // error
   }
使用参数默认值时,函数不能有同名参数

6 当函数的参数是一个对象时,变量才会通过解构赋值生成,如果调用函数时候没有传入参数,那么变量就不会生成,从而报错;而一旦提供了函数的参数的默认值,就可以避免这种情况
    function foo ({x, y = 5} = { }){
        console.log(x, y);    
    }
    foo (); // undefined 5
如果没有提供参数,那么函数foo的参数就是默认的空对象

7 ES6引入rest参数,写作...变量名,用于获取函数的多余参数
    function add (...values){
        let sum = 0;
        for (var val of values){
            sum += val;
        }
        return sum;
     }
    add(2, 3, 5); // 10




返回列表 返回列表
评论

    分享到