ES6特性之:Rest参数

简介: Rest参数,也称可变参数。它为函数提供了可接受任意数量的参数的能力。其实在JavaScript中,通过使用arguments对象也能实现这种可变参数的能力,但是,arguments对象本身有点奇怪,它看起来像一个数组,但其实它不是(是个Iterable的对象)。

Rest参数,也称可变参数。它为函数提供了可接受任意数量的参数的能力。

其实在JavaScript中,通过使用arguments对象也能实现这种可变参数的能力,但是,arguments对象本身有点奇怪,它看起来像一个数组,但其实它不是(是个Iterable的对象)。

ES6中为了语法语义更清晰,专门定义了Rest参数语法来实现这种可变参数的功能。

function format(template, ...values) {
    var result = template;

    for (var i = 0; i < values.length; i++) {
        result = result.replace(new RegExp("\\{" + i + "\\}", "g"), values[i]);
    }

    return result;
}

format("Name: {0}, Age: {1}", "kevin", "18");
// 结果:Name: kevin, Age: 18

format("[{0}] {1} - {2}", "error", "2017-01-01 12:22", "network error");
// 结果:[error] 2017-01-01 12:22 - network error

Rest参数是一个纯粹的数组

function test(a, b, ...others) {
  console.log(Array.isArray(others)); // true
}

Rest参数必须放在参数列表中的最后一个位置

function test(...rest, more) {} // 错误

function test(more, ...rest) {} // 正确
function test(...rest) {} // 正确
目录
相关文章
|
2月前
|
缓存 前端开发 JavaScript
ES6 全部特性详解
ES6 是 JavaScript 语言的一个重要升级,它引入了大量新的功能,极大地增强了 JavaScript 的表达力和可读性。通过了解和掌握这些特性,开发者可以编写出更加简洁、高效、优雅的代码,并轻松应对大型项目的复杂性。
61 7
|
2月前
|
前端开发 网络架构
ES6对函数做了哪些扩展?
本文首发于微信公众号“前端徐徐”,介绍了 ES6 中函数参数的默认值、rest 参数、严格模式、name 属性、箭头函数、尾调用优化等新特性,并详细解释了各个特性的使用方法和注意事项。同时,还介绍了 ES2017 和 ES2019 中关于函数的一些改进,如函数参数尾逗号、`Function.prototype.toString()` 方法的修改以及 `catch` 语句参数的省略。
16 1
|
7月前
|
存储 网络架构
ES6之rest参数、扩展运算符
ES6之rest参数、扩展运算符
|
网络架构
ES6学习(六)—函数的扩展
ES6学习(六)—函数的扩展
|
JSON JavaScript 前端开发
ES6特性总结
ES6特性总结
155 6
ES6特性总结
|
JavaScript 前端开发 网络架构
【ES6丨前端进阶基础 】二,ES6rest参数,Symbol第七种数据类型
【ES6丨前端进阶基础 】二,ES6rest参数,Symbol第七种数据类型
112 0
【ES6丨前端进阶基础 】二,ES6rest参数,Symbol第七种数据类型
|
JavaScript 前端开发 网络架构
ES6 系列:你不知道的 Rest 参数与 Spread 语法细节
ES6 系列:你不知道的 Rest 参数与 Spread 语法细节
140 0
ES6 系列:你不知道的 Rest 参数与 Spread 语法细节
|
索引
ES5方法扩展
ES5中给我们新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括: 数组方法 字符串方法 对象方法
105 0