ES6(3)、参数处理

作者: 飞天小猪_pig | 来源:发表于2022-04-11 15:40 被阅读0次
    1、默认参数值

    (1)、ES6之前:

    function sum(a,b,c){
      a=a || 0   //表示有参数传进来就是传进来的参数,否则就是默认是0
      b=b || 0
      c=c || 0
    }
    sum(1,2)
    

    (2)、ES6改成:
    范例1:

    function sum(a=0,b=0,c=0){
    }
    sum(1,2)
    

    范例2:

    function f(x = 1, y) {
      return [x, y];
    }
    
    f(); // [1, undefined]
    f(2); // [2, undefined]
    
    2、剩余参数

    语法:

    function(a, b, ...theArgs) {
           // ...theArgs 表示剩余传入的参数集合的数组
    }
    

    范例1:

    function sum(message,...numbers){
      let result=0
      for (let i=0; i<numbers.length; i++){
         result+=numbers[i]
      }
      return message+result
    }
    sum('结果是',1,2,3,4,5)   //'结果是15'
    

    范例2:快速将一个伪数组变成真数组方法

    let args=Array.prototype.slice.call(arguments) //es6之前写法
    let args=Array.from(arguments)  //es6新特性
    let args= [...arguments]  // //es6新特性:剩余参数方法
    
    3、展开运算符

    范例1:

    var array1=[1,2,3,4,5,6]
    var [a,b,c,...array2]=array1  //表示a=1,b=2,c=3,剩余array1参数组成数组array2
    console.log(array2)  //打印出[4,5,6]
    

    范例2:

    var array1=[1,2,3,4,5,6]
    var [,,,...array2]=array1
    console.log(array2)  //打印出[4,5,6]
    

    范例3:

    var array1=[1,2,3,4,5,6]
    var array2=[0,...array1,7]   //表示在array1基础上给数组array2新增了0和7
    console.log(array2)  //打印出[0,1,2,3,4,5,6,7]
    
    4、解构赋值

    范例1:

    var a=1;
    var b=2;
    [a,b]=[b,a]    //a 和 b 的值进行互换
    

    范例2:

    var [a, b, ...rest] = [10, 20, 30, 40, 50]
    console.log(res) //打印出[30,40,50]
    

    范例3:

    var jack={
        name:'jack',
        age:'18',
        gender:'male'
    }
    var {name,age,gender}=jack   
    console.log(name) //打印出name:''jack
    

    范例4:

    var [a=5,b=7]=[]  //  先将右边进行解构,如果没有传参就采用左边默认的值
    console.log(a,b)  //打印出5,7
    
    var [a=5,b=7]=[1]  //  先将右边进行解构,只传一个,另一个用默认值
    console.log(a,b)  //打印出1,7
    
    var [a=5,b=7]=[1,2]  //  先将右边进行解构,a和b两个值都用解构的值
    console.log(a,b)  //打印出1,2
    

    范例5:

    var f=function(){
       return [1,2]
    }
    var [a,b]=f()  //解构函数返回值是1和2
    console.log(a,b)  //打印出1,2
    

    范例6:

    let {a = 10, b = 5} = {a: 3};
    console.log(a,b)  //打印出1,5
    

    范例7:对象浅拷贝

    let objA={
       name:{
         x:'a'
       }
    }
    let objB={...objA}
    console.log(objB)
    

    范例8:

    let objA={
       p1:1,
       p2:2
    }
    let objC={
       p1:1111,
       p3:3
    }
    let objB={...objA,...objC}   //如果有同名的key,后面对象key值会覆盖前面的
    console.log(objB)  //打印出{p1: 1111, p2: 2, p3: 3}
    

    范例9:

    var x=1
    var y=2
    //var obj={x:x,y;y} ,key简写成下面方式,只要key和value名字相同
    var obj={x,y]
    

    拓展1:

    var obj2={
       //sayHi:function(){}  可以写成下面这种方式
       sayHi(name){}
    }
    

    拓展2:

    var key='x'
    var value='y'
    //实现:var obj={"x":"y"}
    
    var obj={
      "key":value  //错的写法,无法实现
    }
    
    obj[key]=value  //正确写法,方法1
    
    var obj={
       [key]:value  //正确写法,方法2
    }
    

    相关文章

      网友评论

        本文标题:ES6(3)、参数处理

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