I denne vejledning lærer du om JavaScript-spredningsoperatør ved hjælp af eksempler.
Spread-operatøren er en ny tilføjelse til de funktioner, der er tilgængelige i JavaScript ES6- versionen.
Spred operatør
Spredningsoperatoren …
bruges til at udvide eller sprede en iterabel eller en matrix. For eksempel,
const arrValue = ('My', 'name', 'is', 'Jack'); console.log(arrValue); // ("My", "name", "is", "Jack") console.log(… arrValue); // My name is Jack
I dette tilfælde er koden:
console.log(… arrValue)
svarer til:
console.log('My', 'name', 'is', 'Jack');
Kopier Array ved hjælp af Spread Operator
Du kan også bruge den spredte syntaks …
til at kopiere elementerne til et enkelt array. For eksempel,
const arr1 = ('one', 'two'); const arr2 = (… arr1, 'three', 'four', 'five'); console.log(arr2); // Output: // ("one", "two", "three", "four", "five")
Klonarray ved hjælp af Spread Operator
I JavaScript tildeles objekter ved reference og ikke efter værdier. For eksempel,
let arr1 = ( 1, 2, 3); let arr2 = arr1; console.log(arr1); // (1, 2, 3) console.log(arr2); // (1, 2, 3) // append an item to the array arr1.push(4); console.log(arr1); // (1, 2, 3, 4) console.log(arr2); // (1, 2, 3, 4)
Her henviser begge variabler arr1 og arr2 til den samme matrix. Derfor resulterer ændringen i en variabel i ændringen i begge variabler.
Men hvis du vil kopiere arrays, så de ikke henviser til det samme array, kan du bruge spredningsoperatoren. På denne måde afspejles ændringen i den ene matrix ikke i den anden. For eksempel,
let arr1 = ( 1, 2, 3); // copy using spread syntax let arr2 = (… arr1); console.log(arr1); // (1, 2, 3) console.log(arr2); // (1, 2, 3) // append an item to the array arr1.push(4); console.log(arr1); // (1, 2, 3, 4) console.log(arr2); // (1, 2, 3)
Spred operatør med objekt
Du kan også bruge spredningsoperatoren med objektlitteraler. For eksempel,
const obj1 = ( x : 1, y : 2 ); const obj2 = ( z : 3 ); // add members obj1 and obj2 to obj3 const obj3 = (… obj1,… obj2); console.log(obj3); // (x: 1, y: 2, z: 3)
Her tilføjes både obj1
og obj2
egenskaber til at obj3
bruge spredningsoperatoren.
Hvileparameter
Når spredningsoperatoren bruges som en parameter, kaldes den restparameteren.
Du kan også acceptere flere argumenter i et funktionsopkald ved hjælp af restparameteren. For eksempel,
let func = function(… args) ( console.log(args); ) func(3); // (3) func(4, 5, 6); // (4, 5, 6)
Her,
- Når et enkelt argument sendes til
func()
funktionen, tager restparameteren kun en parameter. - Når der sendes tre argumenter, tager restparameteren alle tre parametre.
Bemærk : Brug af restparameteren sender argumenterne som matrixelementer.
Du kan også videregive flere argumenter til en funktion ved hjælp af spredningsoperatoren. For eksempel,
function sum(x, y ,z) ( console.log(x + y + z); ) const num1 = (1, 3, 4, 5); sum(… num1); // 8
Hvis du sender flere argumenter ved hjælp af spredningsoperatoren, tager funktionen de krævede argumenter og ignorerer resten.
Bemærk : Spread-operator blev introduceret i ES6 . Nogle browsere understøtter muligvis ikke brugen af spredt syntaks. Besøg JavaScript Spread Operator support for at lære mere.