ES6学习--函数剩余参数 (rest参数)
ES6 引入 rest 参数(形式为“...变量名”),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。(可以拿到除开始参数外的参数)
这个rest 参数和arguments不一样,它是程序员自定义的一个普通标识符,只是需要在前面加上三个点:...
function func(a, ...rest) {
  console.log(a)  console.log(rest)}func(1) // 1 []func(1, 2, 3, 4) //1 [2,3,4]function func(a, b, ...rest) {
  console.log(a, b)  console.log(rest)}func(1, 2) // 1 2 []func(1, 2, 3, 4) 1 2 [3,4]function func(a, ...rest, b) {
}//报错function func(a, b, ...rest) {
}func.length // 2function func(...rest) {
  console.log(rest)}func(1) // [1]func(1, 2, 3, 4) // [1,2,3,4]function func(...rest) {
  console.log(rest)  console.log(arguments)}- arguments是一个伪数组(Array-like)
 - 剩余参数是一个真正数组(Array),具有Array.prototype上的所有方法
 - arguments上有callee,callee上有caller
 
如:
function func(a, ...rest) {
    console.log(rest instanceof Array)}func(1, 2) // truefunction add(...values) {
let sum = 0; for (var val of values) {
sum += val;
} return sum;
} add(2, 5, 3) // 10上面的代码相当于以下代码functionsum(first, ...rest) {
    var result = first    var i = 0    var len = rest.length    while (i < len) {        result += rest[i]        i++    }    return result}ES6学习--函数剩余参数 (rest参数)的更多相关文章
- ES6学习 --函数参数默认值与解构赋值默认值
		
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...
 - es6(三):es6中函数的扩展(参数默认值、rest参数、箭头函数)
		
1.函数可以设置参数默认值 function test1(x,y=1){ console.log(x,y) } test1(10)//10 1 2.rest参数:形式为...变量名 function ...
 - ES6扩展——函数扩展之默认参数
		
1.函数的默认参数 //函数的默认参数 function add(a, b = 999){ console.log(a,b); //1 999 } add(1); 2. 函数的形参可以设置默认值,默认 ...
 - ES6学习笔记(6)----函数的扩展
		
参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ 函数的扩展 函数的默认值 : ES6可以为函数指定默认值 (1)指定默认值的两种方式 a.函数参 ...
 - Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归
		
此处将抽象和结构.自定义函数.参数的使用.作用域.递归放在一起学习,看起来很怪是不是? 但实际上这几者之间是有紧密联系的,不然Python基础教程(第三版)的作者为什么会把它们放在一起哪?手动滑稽 好 ...
 - 2017寒假零基础学习Python系列之函数之 函数之定义可变参数
		
若想让函数接受任意个参数,就可以定义一个可变的参数: def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1, ...
 - 09-Python入门学习-函数基础与参数
		
一.函数基础 1.定义函数的三种形式 1.1 无参函数 def foo(): print('from foo') foo() 1.2 有参函数 def bar(x,y): print(x,y) bar ...
 - python基础学习Day10       函数形参的动态参数、*args **kwargs  命名空间    global 与 nonlocal
		
一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...
 - day10 python学习 函数的嵌套命名空间作用域  三元运算  位置参数  默认参数  动态参数
		
1.三元运算 #1.三元运算 利用已下方法就可以实现一步运算返回a b中大的值 def my_max(a,b): c=0 a=int(input('请输入')) b=int(input('请输入')) ...
 
随机推荐
- 统计Java项目的代码行数
			
Java项目谈论行数多少有点无聊,但是有的时候就想看看一个开源的代码的量级,用Shell命令统计再合适不过了 去掉空行和注释: find . -name "*.java" |xar ...
 - ELK之使用filebeat的多行过滤插件把多行合并成一行
			
java运行日志一般有多行,格式类似如下 格式为:日期 + 日志级别 + 日志信息 有些日志是多行的,需要使用filebeat多行插件把多行合并成一行 未使用多行插件的日志格式 修改filebeat配 ...
 - 《ACM-ICPC程序设计系列 数论及其应用》例题个人答案记录
			
例1.1:HDU2099(2017/9/4) 本题书上给的答案是从0到99枚举,显然可以优化到每次递增b,这样至少可以把枚举次数减少到1/10. #include<cstdio> int ...
 - ECNU 3247 - 铁路修复计划
			
Time limit per test: 2.0 seconds Time limit all tests: 15.0 seconds Memory limit: 256 megabytes 在 A ...
 - Mergeable Stack 直接list内置函数。(152 - The 18th Zhejiang University Programming Contest Sponsored by TuSimple)
			
题意:模拟栈,正常pop,push,多一个merge A B 形象地说就是就是将栈B堆到栈A上. 题解:直接用list 的pop_back,push_back,splice 模拟, 坑:用splice ...
 - Oracle核心技术之 SQL TRACE
			
1.SQL TRACE说明: 参数类型 布尔型 缺省值 false 参数类别 动态 取值范围 True|false 2.类型 1)sql trace参数:alter system改变对全局进程影响,如 ...
 - HTML5 Storage(永久存储)
			
localStorage.aa="aa"; //存储了一个key为aa并且value为aa的键值对: localStorage.setItem("bb", &q ...
 - ie8兼容半透明效果css
			
1.opacity:0.5;(半透明效果在ie9及以上版本适用,ie8及以下不兼容) 解决办法:在css中加入filter: progid:DXImageTransform.Microsoft.Alp ...
 - laravel教程入门笔记
			
安装laravel框架 1.安装命令 composer create-project --prefer-dist laravel/laravel ytkah ytkah表示文件夹名,如果不写的话自动会 ...
 - golang语言调试
			
https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs https: ...