ES6箭头函数/数组扩展

173 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天juejin.cn/post/712312…

箭头函数被创造出来最大的作用是作为回调函数来使用。

箭头函数模板

var /let 函数名=(参数) = { 函数体} var f = v = v; 等价于 var f=function( v ){ return v }

注意:

  1. 形参有且只有一个的时候,()可省略,如果形参有多个就不能省略。
  2. { }里的函数体,写法和以前一样,如果=>的后面只有一个表达式或者一个值,那么它是作为函数的返回值返回,{ }可以省略

使用箭头函数要注意以下几点:

  1. 箭头函数this指向固定化,指向在该函数创建时上级作用域中this的指向。
  2. 不可以当作构造函数,不能对箭头函数使用new命令,否则会抛出一个错误。
  3. 箭头函数里没有arguments函数,如果想使用,可用reset参数代替。
  4. 不能使用 yield命令,因此箭头函数不可用作genetator函数。

name属性

函数的name属性,返回函数的函数名。

数组扩展

数组的扩展

...扩展运算符

说明:好比reset参数的逆运算,...reset用来接收多余的形参,并把这个形参用[]括起来,reset就是一个真正的数组,而扩展运算符是把数组的每个元素拿出来,以逗号隔开,进行序列化。

var arr=[1,2,3,4] var x=...arr

扩展运算符的应用 1、复制数组

// 扩展运算符代替了apply
    // ES5写法
    function a(p,o,i){
        console.log(p,o,i)
    }
    a.apply(null,[1,2,3])

    //  ES6写法
    function b(pp,oo,ii){
        console.log(pp,oo,ii)
    }
    var dd=[1,2,3]
    b(...dd)
    // 扩展运算符的应用ES6
    
    var arr=[1,2,3,4]
    // 1、复制数组
    var x=[...arr];
    var xx=arr.concat();//ES5写法复制数组
    console.log(x,xx)//1,2,3,4

    //2、合并数组
    var arr1=["tom","lily"];
    var y=[...arr,...arr1];
    console.log(y);//返回新数组[1,2,3,4,"tom","lily"]

    // 3、把字符串转为真正的数组
    var z=[..."hello"];
    console.log(z);//['h', 'e', 'l', 'l', 'o']
    // var zz=[...z];

    // 4、与结构赋值结合起来,生成新的数组
    const [first,...last]=[1,2,3,4,5];
    console.log(first);//1
    console.log(last)//[2,3,4,5]
    const [ff,...ll]=[];
    console.log(ff,ll)//undefined//[]
    const [f,...l]=["foot"];
    console.log(f,l)//foot//[]

    //5、实现了Iterrator接口的对象

    // Map和Set结构,generrator函数