javascript 之Rest 参数(...)
来源:互联网 发布:蜘蛛侠战斗力知乎 编辑:程序博客网 时间:2024/06/05 15:23
概述:
Rest就是为解决传入的参数数量不一定, rest parameter(Rest 参数) 本身就是数组,数组的相关的方法都可以用。
1.语法:
function f(a, b, ...theArgs) { // ...}
2.描述:
theArgs以“...”开头,它是一个数组,它的值来自于实际调用者传入[0,theArgs.length) (索引的范围:0到theArgs.length-1)
3.区分rest参数和 参数对象
- rest参数不会为每个变量给一个单独的名称,参数对象包含所有参数传递给函数
- 参数对象不是真正的数组,rest参数是真实的数组实例。例如数组sort、map、forEach、pop的方法都可以直接使用
- 参数对象有他自己额外的特性(例如
callee
属性)
4.从参数变成数组
Rest参数的引入减少样式代码。
//以前函数function f(a, b) { var args = Array.prototype.slice.call(arguments, f.length); // …}// 等效于现在function f(a, b, ...args) { }
5.Rest参数可以被解构(通俗一点,将rest参数的数据解析后一一对应)不要忘记参数用[] 括起来,因为它数组嘛
function f(...[a, b, c]) { return a + b + c;}f(1) //NaN 因为只传递一个值,其实需要三个值f(1, 2, 3) // 6f(1, 2, 3, 4) // 6 (第四值没有与之对应的变量名)
6.例子走起
计算rest参数的长度,验证是否直接可以用数组的方法function fun1(...theArgs) { console.log(theArgs.length);}fun1(); // 0fun1(5); // 1fun1(5, 6, 7); // 3
每个参数乘以2
function multiply(multiplier, ...theArgs) { return theArgs.map(function(element) { return multiplier * element; });}var arr = multiply(2, 1, 2, 3); console.log(arr); // [2, 4, 6]
function sortRestArgs(...theArgs) { var sortedArgs = theArgs.sort(); return sortedArgs;}//好像一位和两位混合不能进行排序,这需要看一下为甚?主要第一个为主console.log(sortRestArgs(5, 3, 7, 1)); // shows 1, 3, 5, 7对于参数对象arguments不能排序
function sortArguments() { //arguments是参数对象不能直接使用sort()方法,因为不是数组实例,需要转换 var sortedArgs = arguments.sort(); return sortedArgs; // this will never happen}// 会抛出类型异常,arguments.sort不是函数console.log(sortArguments(5, 3, 7, 1));
7.浏览器兼容问题:
特性chromeEdgeFirFoxIEOperasafaris基础472015.0不支持3410解构支持不支持52.0不支持支持未知8.总结
Rest参数类似java中不定参数,说明语言都是共通的(相互抄袭,哈哈,只是换个姿势)
阅读全文
1 0
- javascript 之Rest 参数(...)
- SoapUI5.2.1之REST参数
- 研究下JavaScript中的Rest参数和参数默认值
- stylus之其余参数(Rest Params)
- 轻松学习 JavaScript (2):函数中的 Rest 参数
- 【JavaScript】函数中的arguments对象与Rest参数
- ECMAScript6(ES6)标准之函数扩展特性箭头函数、Rest参数及展开操作符
- javascript之函数参数
- ES6 Rest参数
- es6 rest 参数
- JS_Argument参数与Rest参数
- javascript 学习之 函数 - 参数
- javascript之函数的参数
- javascript之变量和参数
- SOAPUI测试REST项目(四)——了解REST参数
- 轻松学习 JavaScript——第 2 部分:函数中的 Rest 参数
- CXF REST的URL参数
- rest 调用有参数接口
- chrono库及C和POSIX提供的Date/Time函数灵活运用
- httpclient的几种post参数格式
- LeetCode@Array_414_Third_Maximum_Number
- Vue之实例的生命周期
- 没有超时和隔离差点引发的系统雪崩
- javascript 之Rest 参数(...)
- jstl functions标签详细使用说明
- 深度学习和机器学习概念入门
- hdu 5727 Necklace 状压dp/二分图匹配
- mac和windows开发工具对比
- 用指针给数组赋值的一个小问题
- VS调试报错 “error LNK2019: 无法解析的外部符号 ......”
- 扩展欧几里得
- bellman-ford的理解