解构赋值,reset参数,扩展运算符,class,import、export

  还是来用react了。前端框架都研究看看。这次网站就用它来做了。因为angular使用的ts,所以一些es6的规则也不是很清晰,都摘抄在下。

  es6允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构。

  let [a,b,c]=[1,2,3];a//1 b//2

  对象解构:

  let name ='a';

  let age=18;

  let per={name,age};

  per//obj{name : 'a' ,age : 18}

  对象相反解构:

  let per={name:'a' , age:18};

  let {name ,age}=per;

  name//'a'

  age//18

  对象参数解构:

  function sum({x,y}){

    return x+y;

  }

  sum({x:1,y:2}); //3

  对象解构在这里让我感到比较困惑,以前得这种对象解构,赋值只会写成let name=per.name,现在直接将值赋予变量。对象参数解构中,直接传入对象,而不是对象的值,而在方法中直接使用对象的值,这个是不是应该和对象中得参数名相同才可以这样做,做个实验:

        function sum({
            x,
            y
        }) {
            return x + y;
        }

            alert(sum({
                a: 1,
                b: 2
            })); //NAN

  这样是不可以的,也就是解构过程会直接引用传入对象的相对应参数的值,假如没有对应参数,是没有值的。

  reset参数

  es6引入rest参数(形式为...变量名)用于获取函数的多余参数,以代替arguments对象的使用。rest参数是一个数组,数组中的元素是多余得参数。reset参数之后不能再有其他参数。

function t1(l1,...l2){
  console.log(l2);  
}
t1(1,2,3,4)//[2,3,4]

  reset参数也用在小程序的模块数据绑定中:<template is="msgItem" data="{{...item}}"/>

  扩展运算符

  扩展运算符是三个点(...),它将一个数组转为用逗号分隔的参数序列,类似于reset参数的逆运算。扩展运算符还常用于合并数组以及与解构赋值结合使用。

        function test1(){
            let ar1=[1,2];
            let ar2=[3,4];
            let ar3=[5,6];
            let ar4=[...ar1,...ar2,...ar3];
            return ar4;
        }
        console.log(test1());//[1,2,3,4,5,6]

  class

  ES6引入了class这个概念,新的class写法让对象原型的写法更加清晰,也更像传统的面向对象编程语言的写法。class之间可以通过extends关键字实现继承。

  import、export

  ES6实现了自己的模板化标准,ES6模块功能主要由两个关键字构成:export和import。export用于规定模块对外暴露的借口,Import用于引入其他模块提供的接口。

  看完之后,感觉越来越需要看一下阮一峰老师写的ES6了。行吧。加油。

  

posted @ 2018-06-08 19:08  艾路  阅读(1058)  评论(0编辑  收藏  举报