ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のスプレッド演算子とレスト演算子をマスターする
spread 演算子と rest 演算子はどちらも 3 つのドット (...) で表され、ES6 で導入された JavaScript の多用途機能です。これらは同じ構文を共有しますが、異なる目的を果たします。スプレッド演算子は要素の展開に使用され、レスト演算子は要素の収集に使用されます。
スプレッド演算子は、配列、オブジェクト、または反復可能要素の要素を個々の要素に展開するために使用されます。
スプレッド演算子は、配列要素のコピー、連結、または受け渡しに使用できます。
例: 配列のコピー
const arr1 = [1, 2, 3]; const arr2 = [...arr1]; // Creates a copy of arr1 console.log(arr2); // Output: [1, 2, 3]
例: 配列の連結
const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const combined = [...arr1, ...arr2]; console.log(combined); // Output: [1, 2, 3, 4, 5, 6]
例: 要素を関数に渡す
const numbers = [10, 20, 30]; console.log(Math.max(...numbers)); // Output: 30
スプレッド演算子を使用して、オブジェクトをコピーまたは結合できます。
例: オブジェクトのコピー
const obj1 = { a: 1, b: 2 }; const obj2 = { ...obj1 }; console.log(obj2); // Output: { a: 1, b: 2 }
例: オブジェクトの結合
const obj1 = { a: 1, b: 2 }; const obj2 = { b: 3, c: 4 }; const merged = { ...obj1, ...obj2 }; console.log(merged); // Output: { a: 1, b: 3, c: 4 }
rest 演算子は、複数の要素を 1 つの配列またはオブジェクトに収集します。これは、関数のパラメーターまたは代入の構造化でよく使用されます。
残りの演算子は、無限の数の引数を配列に収集できます。
例: 引数の収集
function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0); } console.log(sum(1, 2, 3, 4)); // Output: 10
残りの演算子は、配列の構造化操作で残りの要素を収集します。
例: 配列の構造化
const [first, second, ...rest] = [1, 2, 3, 4, 5]; console.log(first); // Output: 1 console.log(second); // Output: 2 console.log(rest); // Output: [3, 4, 5]
rest 演算子は、オブジェクトの構造化操作で残りのプロパティを収集します。
例: オブジェクトの構造化
const arr1 = [1, 2, 3]; const arr2 = [...arr1]; // Creates a copy of arr1 console.log(arr2); // Output: [1, 2, 3]
Aspect | Spread Operator | Rest Operator |
---|---|---|
Purpose | Expands elements into individual items | Collects items into a single entity |
Use Cases | Copying, merging, passing elements | Collecting function arguments, destructuring |
Data Types | Arrays, Objects, Iterables | Arrays, Objects |
const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const combined = [...arr1, ...arr2]; console.log(combined); // Output: [1, 2, 3, 4, 5, 6]
const numbers = [10, 20, 30]; console.log(Math.max(...numbers)); // Output: 30
Spread Operator (...): 配列、オブジェクト、または反復可能オブジェクトを個々の要素に展開します。
以上がJavaScript のスプレッド演算子とレスト演算子をマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。