restパラメータとspread構文


rest parameters
restパラメータとは?
パラメータ名の前に3点定義のパラメータを追加
  • 関数で渡されるパラメータリストを配列に圧縮します.
    ex)
  • function restTest(...rest) {
      console.log(rest);
    }
    restTest(1,2,3,4) // [ 1, 2, 3, 4 ]
  • 関数に渡されるパラメータは、パラメータおよびrestパラメータに順次割り当てられる.
    ex)
  • function restTest(para, ...rest) {
      // para : 매개변수
      console.log(para); // 1
      // rest : rest parameters
      console.log(rest); // [ 2, 3, 4 ]
    }
  • restパラメータは、宣言パラメータに先に割り当てられたパラメータを除き、残りのパラメータを並べ替える
    ->最後のパラメータとして使用する必要があります!
  • function restTest(para, ...rest) {
      // para : 위의 예시에서는 1
      console.log(para); // 1
      // rest : 위의 예시에서는 1을 제외한 나머지 2,3,4를 배열로 변환하여 [2,3,4]
      console.log(rest); // [ 2, 3, 4 ]
    }
    spread syntax
    拡張文法とは?
    複数の組合せの値を単一の値のリストに列挙する構文.
  • for..ofドアで巡回可能な(並び、文字列など)iterable(順序付き)に限ります.
    ex)
  • console.log(...[1,2,3]) // 1 2 3
    console.log(...'Pocketmon'); // 'P' 'o' 'c' 'k' 'e' 't' 'm' 'o' 'n'
    
    // iterable이 아닌 객체에는 spread syntax를 사용할 수 없다.
    console.log(...{ a: 1, b: 2, c :3 }); // TypeError: Found non-callable @@iterator
  • spread syntaxの結果は値のリストなので、結果を変数に割り当てることはできません.
  • // rest parameters로 배열을 펼친 결과를 실행
    console.log(...[1,2,3]) // 1 2 3
    // rest parameters로 문자열들을 각각 펼친 결과를 실행
    console.log(...'Pocketmon'); // 'P' 'o' 'c' 'k' 'e' 't' 'm' 'o' 'n'
    
    // 결과가 각각 배열과 문자열에 대한 목록이다.
    n/a.結論
  • restパラメータパラメータパラメータ名に3点定義を付けて配列に圧縮する.
  • spread syntax個別値のリストを展開するために使用します.