美文网首页
JavaScript中的声明展开和剩余参数

JavaScript中的声明展开和剩余参数

作者: 爱讲鸡汤的油腻大叔 | 来源:发表于2019-07-18 15:55 被阅读0次

es6中, (...)可以用作声明展开和剩余参数
es5中,我们可以用apply()函数把数组转化成参数。es6也有对应的方法,展开运算符(...)

用作展开运算符时

function sum(x = 1, y = 2, z = 3) {
  return x + y + z;
}
 let params = [3, 4, 5];
// es5 apply() 把数组转换成参数
console.log(sum.apply(undefined, params))
// es6 展开运算符(...)把数组转换成参数
console.log(sum(...params));  => 12

用作剩余参数时

在函数中,展开运算符(...)也可以代替arguments,这时充当剩余参数使用

function restParam(x, y, ...a){
  return (x + y) * a.length
}

console.log(restParam(1, 2, ''hello", true, 7))    =>   9

不过也可以通过其他方式去实现剩余参数的功能

function restParam(x, y){
  // 这里表示从下标值为2的参数开始切割,并把切割后的参数转换成数组,对于es6中的展开运算符是一个逆过程
  var a = Array.prototype.slice.call(arguments, 2)
  return (x + y) * a.length
}
console.log(restParam(1, 2, ''hello", true, 7))    =>   9

相关文章

  • JavaScript中的声明展开和剩余参数

    在es6中, (...)可以用作声明展开和剩余参数在es5中,我们可以用apply()函数把数组转化成参数。es6...

  • JavaScript中的剩余参数

    JavaScript中的剩余参数是指函数定义时以...为前缀的参数,这个参数是一个没有对应形参的实参组成的一个数组...

  • js展开语法和剩余参数

    展开语法: 函数调用:myFunction(...iterableObj); 字面量数组构造或字符串:[...it...

  • 函数的剩余参数和展开语法

    1. 函数的剩余参数(函数定义的时候) 功能:将参数序列转换为数组 2.展开语法 功能: 将数组展开为序列 使用场...

  • ES6(参数)

    参数扩展 1.收集剩余参数到一个数组中 2.数组展开(...arr 表示把数组arr展开) 例1 例2 例3 默认参数

  • 三.ES6 函数-参数展开/扩展

    数组的 扩展 / 展开 ...args1-收集剩余参数 到 最后一个参数位置2-展开数组简写,效果和直接将数组 写...

  • ES6——参数展开

    函数的参数1 参数扩展/展开2 默认参数 参数扩展1 收集剩余的参数function show(a,b,...ar...

  • ES5中认知上的一些遗漏点

    1. JavaScript 中对变量和函数声明的“提前(hoist) JavaScript 中对变量和函数声明的“...

  • 什么是闭包,有哪些应用场景

    在javascript中,内部函数总是可以访问其所在外部函数中,声明的参数和变量,即使在其被返回(寿命终结)。闭包...

  • 我在闭包在node.js里的应用与思考

    闭包的定义 学术来说,闭包是指在 JavaScript 中,内部函数总是可以访问其所在的外部函数中声明的参数和变量...

网友评论

      本文标题:JavaScript中的声明展开和剩余参数

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