7月2日金曜日TIL


Spread/Rest構文

  • Spread/Rest構文と構造分解を割り当てることができる必要があります.
  • Spread構文


    配列を展開してパラメータとして渡すか、展開して各要素として挿入します.
    function sum(x, y, z) {
      return x + y + z;
    }
    
    const numbers = [1, 2, 3];
    
    sum(...numbers) // 질문 : 어떤 값을 리턴하나?

    最新の構文


    Parameterは配列で受信できます.パラメータの個数が可変の場合に役立ちます.
    function sum(...theArgs) {
      return theArgs.reduce(previous, current) => {
        return previous + current;
      });
    }
    
    sum(1, 2, 3) // 어떤값 리턴?
    sum(1, 2, 3, 4) // 어떤 값 리턴? 

    アレイでの使用時


    Spread構文が配列で機能する

    1.連結シナリオ

    let parts = ['shoulders', 'knees'];
    let lyrics = ['head', ...parts, 'and', 'toes'];
    
    // lyrics의 값은?
    

    2.アレイのコピー

    let parts = ['shoulders', 'knees'];
    let lyrics = ['head', ...parts, 'and', 'toes'];
    
    let newarr = [...parts, ...lyrics];
    
    // Spread문법은 기존 배열을 변경하지 않으므로 immutable하다. 

    オブジェクトで使用する場合

    let obj1 = { foo: 'bar', x: 42};
    let obj2 = { foo: 'baz', y: 13};
    
    let clonedObj = { ...obj1 };
    let mergedObj = { ...obj1, ...obj2 };
    
    // clonedObj, mergedObj의 값은?

    関数から残りのパラメータを取得

    function myFun(a,, b, ...manyMoreArgs) {
      console.log("a", a);
      console.log("b", b);
      console.log("manyMoreArgs", manyMoreArgs);
    }
    
    myFun("one", "two", "three", "four", "five", "six");
    
    // 콘솔은 순서대로 찍히는가? 

    ぶんかいこうぞう


    構造分解配分とは,Spread構文を用いて値を分解し,個々の値を変数に再配分するプロセスである.