構造分解配分&残存パラメータ


1.設計配分(配分構造分解)


構造分解割り当ては、配列またはオブジェクトのプロパティを分解し、各変数に値を含めるJavascript式です.
これにより、コード量を低減し、可読性を向上させる利点がある.

整列

// 구조 분해 할당
const numbers = [0, 1, 2];
const [a, b, c] = numbers;
console.log(a, b, c); // 0 1 2
上記のコードに示すように、配列内のインデックスに対応する要素を割り当てることができます.
const numbers = [0, 1, 2, 3, 4, 5, 6];
const [zero, one, two, ...rest] = numbers;

console.log(zero, one, two); // 0 1 2
console.log(rest); // [3, 4, 5, 6]
...を使用して割り当てられます.

オブジェクト

// 구조 분해 할당 (객체)
const numbers = {
  zero: 0,
  one: 1,
  two: 2,
};
const { one, two, zero } = numbers;
console.log(zero, one, two); // 0 1 2

const { num1, num2, num3 } = numbers;
console.log(num1, num2, num3); // undefined undefined undefined
値は、割り当てられたオブジェクトのキー値として他のオブジェクトに割り当てることができます.
const numbers = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6 };
const { zero, one, two, ...rest } = numbers;

console.log(zero, one, two); // 0 1 2
console.log(rest); // { three: 3, four: 4, five: 5, six: 6 }
オブジェクトも配列と同じ...分けることができます.
これを余剰割当てと呼び、特定の要素の後から
最後の要素に割り当てることができます.

変数値の交換

let a = 100;
let b = 500;

[a, b] = [b, a];
console.log(a, b); // 500, 100
let a = 100;
let b = 500;
let temp = a;

a = b; // a = 500
b = temp; // b = 100
aにbの値を指定します.
一時変数tempにaの値を指定します.
bに一時変数tempを割り当てる.

戻り値の一部を無視

function returnArray() {
  return [1, 2, 3];
}

let [one, , three] = returnArray();
let [, ,] = returnArray();
let [num1] = returnArray();
console.log(one, three); // 1 3
console.log(num1); // 1
上から順番に過程を見ます.
返されるインデックスに対応する変数
let[,]のように空のままにすると
戻り値は無視できます.

2.Rest parameter(残りのパラメータ)


パラメータ(parameter)

function 함수이름(매개변수1, 매개변수2, ...) {
    실행문;
}
 
함수이름(인자1, 인자2, ...);
関数宣言で使用される変数をパラメータと呼びます.
パラメータは、関数を呼び出すときにパラメータとして機能する変数です.
また、関数の呼び出しにはパラメータが使用されます.
上のコードで関数を実行すると
パラメータ入力パラメータ.

ざんりゅうパラメータ


関数の最後のパラメータの前に...(3つのポイント)を加えると、前述のパラメータの
すべての後続パラメータをJavaScript配列に入れることを指定します.
最後のパラメータのみが残りのパラメータに設定できます.
function myFun(a, b, ...manyMoreArgs) {
  console.log("a", a);
  console.log("b", b);
  console.log("manyMoreArgs", manyMoreArgs);
}

myFun("one", "two", "three", "four", "five", "six");

// 콘솔 출력:
// a, one
// b, two
// manyMoreArgs, [three, four, five, six]
関数定義には...が1つしか存在しません.
次の形式は、動作しないエラー関数です.
foo(...one, ...wrong, ...wrong)
foo(...wrong, arg2, arg3)
従って、以下のように使用する.
foo(arg1, arg2, ...correct)