ホームページ >ウェブフロントエンド >jsチュートリアル >ES6の残りのパラメータの説明例

ES6の残りのパラメータの説明例

不言
不言転載
2018-11-14 15:38:301972ブラウズ

この記事の内容は、ES6 の残りのパラメータのコードの説明です。必要な方は参考にしていただければ幸いです。

概要

残りのパラメータは、対応する仮パラメータのないパラメータを配列に集約します

構文

function(a, b, ...theArgs) {
}

仮パラメータに対応しないパラメータのみを集約します

残りのパラメータは、対応する仮パラメータのないパラメータのみを配列に集約しますが、arguments にはすべてのパラメータが含まれます。

function add(a, b, ...theArgs) {
    return {rest: theArgs, arguments}
}
add() 
// {rest: [undefined, undefined, []], arguments: Arguments(0)}
add(1) 
// {rest: [1, undefined, []], arguments: Arguments(1)}
add(1, 2) 
// {rest: [1, 2, []], arguments: Arguments(2)}
add(1, 2, 3, 4, 5) 
// {rest: [1, 2, [3, 4, 5]], arguments: Arguments(5)}

残りのパラメータは配列です

疑似配列である arguments とは異なり、残りのパラメータは常に配列です

function add(...theArgs) {
    console.log(Array.isArray(theArgs))
    theArgs.forEach((a)=>console.log(a))
    console.log(Array.isArray(arguments))
    Array.prototype.slice.call(arguments, add.length).forEach((a)=>console.log(a)) // 转化成数组
}
add(1,2,3) // true 1 2 3 false 1, 2, 3, 4

残りのパラメータの分解パラメータ

function add(...[a, b, c]){
    return a + b +c
}
add(1, 2, 3) // 6
add(1, 2, 3) // 6

使用babel翻訳

function add(...num){
  return num.reduce((n1,n2)=>n1+n2)
}

翻訳後

function add() {
  for (var _len = arguments.length, num = Array(_len), _key = 0; _key < _len; _key++) {
    num[_key] = arguments[_key];
  }

  return num.reduce(function (n1, n2) {
    return n1 + n2;
  });
}

以上がES6の残りのパラメータの説明例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。