Javascript - '...' 的意思

tne*_*uts 6 javascript

我在看一个开源的 javascript 应用程序,特别是 firefox 的扩展。

我在多个地方看到这种语法,如果有人能对此有所了解,我不知道这意味着什么。

如..

 return (...args)
Run Code Online (Sandbox Code Playgroud)

或者...

 console.info(message, ...args.slice(1));
Run Code Online (Sandbox Code Playgroud)

知道这个“...”是做什么的吗?是像输入第三个参数还是什么?第三次反驳?在无法理解它的情况下很难尝试和调试它。

小智 7

它将一个数组(args)解包到一个正式的参数列表中。除其他外,这允许将其余参数的成员作为一组正式参数传递给另一个函数。

下面是一个例子:

var stats = function(...numbers) {
    for (var i=0, total = 0, len=numbers.length; i<len; i++) {
        total += numbers[i]; 
    } 
    return {
        average: total / arguments.length,
        max: Math.max(numbers); //spread array into formal params
    } 
} 

stats(5, 6, 8, 5); //{average: 6, max: 8}
Run Code Online (Sandbox Code Playgroud)

希望这能帮助您理解“...”!


rec*_*ive 5

这是一个 Ecmascript 6“休息”参数。当用作参数或参数时,它允许您接收或传递数组作为单独的参数。

http://ariya.ofilabs.com/2013/03/es6-and-rest-parameter.html