javascript的rest参数的用法

javascript的rest参数,下面是这样说的:

clipboard.png

问题:
上图有句话,“rest参数搭配的变量是一个数组”,可是add(2,5,3),传递的参数不是一个数组,应该怎么理解呢?

阅读 3.8k
5 个回答

说的是...valuse等于[2,5,3]
其实你应该看的是解构,否则就这样的东西可以解释一天。

function test({a, b, ...rest}){
    console.log(rest);//{ c: 30, d: 40 }
}

test({a: 10, b: 20, c: 30, d: 40});
function f(...[a, b, c]) {
  return a + b + c;
}

f(1, 2, 3)   
function f1(a, b, c) {
    return a + b + c;
}

function f2(...param) {
  return a + b + c;
}

let arr = [1, 2, 3];

f2(arr);就等同于f1(1, 2, 3);

如果传入的不是数组,而是好几个参数,它会把这些arguments看成数组处理

更具体的只有你自己学习了,三两句说不清楚

这句话我的理解应该是,当你用reset参数来接收的时候它是一个数组
function add(...values) {
  console.log(values, typeof values)
  let sum = 0;

  for (var val of values) {
    sum += val;
  }

  return sum;
}

这个意思是会吧传递的多个参数自动组装成数组

看例子就知道数组指的是values啊。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题