【ES】笔记-ES6的函数rest参数用法

这篇具有很好参考价值的文章主要介绍了【ES】笔记-ES6的函数rest参数用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

es6中引入了rest参数,样式形如…xxx,用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的一个变量是一个数组,该变量将多余的参数放入数组中。例如:

function add(...value){
    console.log(value);
    let sum=0;
    for(var val of value){
        sum+=val    
    }
    return sum
}
add(2,3,5);//10

上面代码的add函数是一个求和函数,利用rest参数,可以向该函数传入任意数目的参数。

下面是一个rest参数代替arguments变量的例子:

function sortNumbers(){
    return Array.prototype.slice.call(arguments).sort();
}
 
//rest写法
const sortNumbers=(...numbers)=>numbers.sort();

上面两种写法rest参数的写法更加自然简洁。

arguments对象不是数组,只是一个类数组对象。为了使用数组的方法,得使用Array.prototype.slice.call先将其转为数组。rest参数就不存在这个问题,它就是一个真正的数组,数组的方法都可以使用。下面是一个利用rest参数改写数组的push方法。

function push(array,...items){
    items.forEach(function(item){    
        array.push(item);
        console.log(item);
    })
}
var a=[];
push(a,1,2,3);

还需要注意的是

rest参数之后不能有其他参数,否则会报错。

函数的length属性不包括rest参数。文章来源地址https://www.toymoban.com/news/detail-642375.html

(function(a) {}).length  // 1
(function(...a) {}).length  // 0
(function(a, ...b) {}).length  // 1

到了这里,关于【ES】笔记-ES6的函数rest参数用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom

    下面的例子则是利用get拦截,实现一个生成各种 DOM 节点的通用函数dom。 输出结果:

    2024年02月10日
    浏览(28)
  • JavaScript Es6_2笔记 (深入对象 + 内置构造函数 + 包装类型)+包含实例方法

    了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。 了解面向对象编程中的一般概念 能够基于构造函数创建对象 理解 JavaScript 中一切皆对象的语言特征 理解引用对象类型值存储的的

    2024年02月12日
    浏览(38)
  • 【ES6】Promise.all用法

    Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 上面代码中,Promise.all()方法接受一个数组作为参数,p1、p2、p3都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。另外,Promise.all()方法的参数可以

    2024年02月09日
    浏览(27)
  • ES6-ES13用法(高频面试题)

    1. ES6新增的方法 let和const,解构赋值、模板字符串、箭头函数。 Symbol、Map、Set三种常用的数据类型。 Proxy重新定义了数据劫持的能力 Reflect定义了一套标准化的数据操作的方式 Promise确实的解决了异步逻辑嵌套及回调地狱问题。定义了异步逻辑的三种状态pending、rejected、full

    2024年01月25日
    浏览(31)
  • 【ES6】Promise.allSettled的用法

    Promise.allSettled() 是一个Promise方法,用于处理一个Promise数组,返回一个新的Promise数组,每个元素对应原始Promise的状态。这个方法可以用于处理多个异步操作,并且能够获取每个操作的结果和状态。 下面是Promise.allSettled()的详细代码示例: 输出结果: 在上面的代码中,我们创

    2024年02月10日
    浏览(31)
  • ES6 new Map() 的用法

    一. 简介: Map是一个 类似于对象 的数据类型 与常规对象和Array不同的是,它是“键控集合“ 它的行为有稍许不同,并且在特定的上下文中使用,它可以提供相当大的性能优势 二. 案例 1. 定义Map 语法一:构造函数--声明时赋值         参数:a. 必须是二维数组, b.二维数

    2024年02月06日
    浏览(29)
  • 【ES6】Promise.race的用法

    Promise.race()方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。 上面代码中,只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。 Promise.race()方法的参数与Promise.all()方法一样,如果不是 Pr

    2024年02月10日
    浏览(26)
  • ES6: Symbol概念与用法举例

    概念: ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值。 1- 使用Symbol作为对象属性名 举例理解: a.给对象添加独一无二的属性 b. 便于定义公共库 这里封装属性和方法时, 全部采取Symbol类型, 这样别人就算往里面加name、age等同名的属性或方法, 也不会影响对象原本使

    2024年02月15日
    浏览(26)
  • es6有哪些新特性?用法和案例

    目录 箭头函数 模板字符串  解构赋值 Promise  async/await 箭头函数使用 = 符号定义,可以更简洁地书写函数并且自动绑定 this 。比如: 箭头函数通常用在回调函数中,例如: 模板字符串是一种新的字符串格式,可以包含变量、表达式和换行符。通过使用占位符 ${} 可以插入变

    2024年02月06日
    浏览(28)
  • ES6 模块 export 用法(三种方式)

    使用 ES6 Module 新特性,提供模块格式。前端项目中,常用于封装 API 。所以这里做个汇总及差异对比说明。 方式一:export 定义 用法 代码 1 - 3 行,整体加载, * 表示全部,使用 as ,取别名为 api 。调用: 别名.方法名() ; 代码 5 - 7 行,按需加载,用花括号列出要使用

    2024年02月14日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包