ES6——rest参数
ES6 引入 rest 参数(形式为...变量名
),用于获取函数的多余参数,这样就不需要使用arguments
对象了。rest
参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
function add(...values) {var sum = 0;for (var value of values) {sum += value;}return sum;
}add(2, 5, 3) // 10
下面是一个 rest
参数代替arguments
变量的例子。
// arguments变量的写法
function fun1() {return Array.prototype.slice.call(arguments).sort();
}// rest参数的写法
var fun2 = (...nums) => nums.sort();
arguments
对象不是数组,而是一个类似数组的对象。所以为了使用数组的方法,必须使用Array.prototype.slice.call
先将其转为数组。rest
参数就不存在这个问题,它就是一个真正的数组,数组特有的方法都可以使用。
注意,rest
参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
// 报错
function f(a, ...b, c) {// ...
}
函数的length
属性,不包括 rest
参数。
(function(a) {}).length // 1
(function(...a) {}).length // 0
(function(a, ...b) {}).length // 1
ES6——rest参数相关推荐
- ES6 rest参数,扩展运算符,Symbol数据类型,迭代器和生成器 【详解加案例 】(二)
文章目录 1.ES6 rest 参数 2. ES6 扩展运算符 2.1 ES6 简介 2.2 应用 3. ES6 Symbol 数据类型 3.1 Symbol两种创建方式 3.2 Symbol注意事项 ...
- ES5和ES6可变参数
在ES5中,可变参数依靠arguments,代码如下: <!DOCTYPE html> <html> <head> <meta charset="u ...
- ES6——函数参数默认值
ES6 之前,不能直接为函数的参数指定默认值,ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面. function fun(x = 'Hello'){console.log(x); } f ...
- ES6函数参数的默认值
基本用法 在ES6之前,不能直接将函数的参数指定默认值,只能采用变通的方法 function fn(x,y) {y = y || 'World'console.log(x,y) }fn('Hello' ...
- ES6 Rest参数
Rest参数接收函数的多余参数,组成一个数组,放在形参的最后,形式如下: function func(a, b, ...theArgs) { // ... } rest参数只包括那些没有给出名称的参数 ...
- ES6函数参数的解构赋值,以及2种设置参数默认值方法的区别
文章目录 1. 函数参数的解构赋值方式 2. 函数参数解构设置参数默认值 1. 方法1 2. 方法2 3. 总结 1. 函数参数的解构赋值方式 下面代码中,函数add的参数表面上是一个数组,但在传入参 ...
- es6 箭头函数 rest参数 扩展运算符
Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...
- ES6新特性——rest参数
ES6引入rest参数,用于获取函数的实参,用来代替arguments; 下面对比一下ES5和ES6获取实参的方式: 1.ES5获取实参的方式: function date() {console.lo ...
- 前端知识 | 简析ES6
CMAScript 6 简介: CMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript ...
最新文章
- Nature子刊:微生物系统中的功能与功能冗余
- 深度学习的batch_size
- 51单片机学习笔记(清翔版)(21)——ADDA数模转换
- TortoiseSVN操作
- dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?
- c++ boost多线程学习(一)
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)...
- 案例:用户登录(html--servlet--mysql)
- 移动开发—Less基础与安装
- 无意间把你的个人资料当圣诞礼物,送给了网络犯罪份子吗?
- 给定坐标(星期几、第几节)前端显示问题
- ZigBee协议栈(一)--协议栈介绍
- flutter 修改app名字和图标(安卓)
- 2022年防爆电气考试题及答案
- 微信公众号笔记(一)
- RHCEansible静态主机清单
- 期末前端web大作业——HTML+CSS+JavaScript仿京东购物商城网页制作(7页)
- 计算机网络学习--协议族、协议栈
- java8新特性(拉姆达表达式lambda)
- 3-10 Pandas的数据规整
热门文章
- jQuery选择器,用逗号分隔的时候需要注意范围问题
- 测试培训大纲第一课时,软件测试基础(培训待续中....)
- 让shell脚本开机自启动方法
- 关于mysql的论文,大家给点建议
- 昨天的性能优化与今天的网站故障
- python复习题答案_python的复习题和答案合集
- 深入浅出计算机组成原理03:处理器
- python join_Python中join()方法的用法
- python创建和删除文件有什么区别_python创建和删除文件
- matlab norm函数_Matlab测夹角