40-函数扩展运算符

  • 扩展运算符在等号的左边, 会将剩余的数据打包的一个新的数组中
    • 注意点: 扩展运算符只能写在最后
          let [a, ...b] = [1, 3, 5];  // a = 1; b = [3, 5];
      
  • 扩展运算符在等号的右边, 会将数组中的数据解开放到所在的位置
          let arr1 = [1, 3, 5];
          let arr2 = [2, 4, 6];
          let arr = [...arr1, ...arr2];  // let arr = [1, 3, 5, 2, 4, 6];
    
  • 扩展运算符在函数形参列表中的作用
    • 将传递给函数的所有实参打包到一个数组中

          // 也可以和arguments一样, 将传入的所有实参相加
          function getSum(...values) {
              // console.log(values);
              let sum = 0;
              for (let i = 0; i < values.length; i++){
                  let num = values[i];
                  sum += num;
              }
              return sum;
          }
          let res = getSum(10, 20, 30, 40);
          console.log(res);
      
    • 注意点: 和在等号左边时一样, 也只能写在形参列表的最后

          // 当形参列表中有形参时, 会优先将实参分配给形参, 然后将剩下的实参打包为一个数组
          function getSum(a, ...values) {
          // function getSum(...values, a) { // 报错
              console.log(a); // 10
              console.log(values);    // [20, 30]
          }
          getSum(10, 20, 30);
      

你可能感兴趣的:(40-函数扩展运算符)