美文网首页
javaScript之ES6(三)

javaScript之ES6(三)

作者: 夏树大笨熊 | 来源:发表于2018-05-01 12:05 被阅读15次

    函数

    函数形参的默认值

    function fn(x = 'abc'){
      }
     fn();
    //abc
    //以前的做法
    function fn(x){
      if(x === undefined){
      x = 'abc';
     }
      console.log(x);
    }
    

    注:

    • 使用解构赋值,可以使用解构的方式设置默认值,也可同时使用
    • 一般将设置默认值的形参放在最后面

    函数的length属性

    函数的length属性指的是无默认值形参的总数。

    function fn(x,y = 1){};
    fn.length;
    //1
    

    扩展运算符

    “ ”将数组转换成以逗号分隔的序列。
    var arr = [1,2,3];
    console.log(...arr);
    //1,2,3

    应用:
    1 . 函数调用时使用此运算符展开数组,传递实参

    function fn (a,b){
     console.log(a*b);
    }
     var arr = [1,2];
     fn(...arr);
    //3
    注:ES6之前使用apply方式调用函数,批量传入参数
    fn.apply(null,arr);
    //3
    

    2 . 合并数组

    var arr1 = [1,2,3];
    var arr2 = [4,5];
    var arr = [...arr1,...arr2];
    //[1,2,3,4,5]
    //es5写法
    var arr = arr1.concat(arr2);
    

    3 . 解构赋值上的使用
    ...value放在末尾,用来接收多余的参数,是个数组
    const [a,...b] = [1,2,3];
    b;
    //[2,3]
    函数形参也可以使用此方式获取多余参数

    function fn(...value){
      console.log(values)
    }
     fn(1,2,3);
    //[1,2,3]
    es6之前arguments获取多余参数
    

    箭头函数

    箭头函数用来简写函数,形式(形参)=>{函数体}

    var fn = (a,b)=>{
      return a+b
    };
    //等同于
    var fn = function(a,b){
      return a+b;
    }
    

    1.当形参只有一个时()可省略
    var fn = a=>{return a+1};

    1. 当函数体只有一个语句时,可省略{},此时语句的值会被return
      var fn = a=>a+1;
      注意:
    2. 函数体的this指向函数定义时所在的对象
    var obj={
      fn:function(){
        setInterval(()=>{
        console.log(this)
       },1000)
     }
    }
    obj.fn();
    //{fn:f}即为obj
    //非箭头函数,指向window
    var obj={
        fn:function(){
          setInterval(function(){
          console.log(this)
          },1000)
        }
    };
    obj.fn();
    //window
    
    1. 不可使用arguments对象;
    2. 不可使用yieid命令,不能用作Generator函数;
      4.箭头函数没哟自己的this,所以不能使用bind,call,apply

    相关文章

      网友评论

          本文标题:javaScript之ES6(三)

          本文链接:https://www.haomeiwen.com/subject/jusxrftx.html