Rest-operatoren i JavaScript
Vi starter denne lektion med en vis afklaring.
I alle de foregående lektioner i dette afsnit fortalte jeg
dig ikke hele sandheden om operatoren ...
Faktisk kan denne operator, afhængigt af stedet i koden, enten kaldes spread-operatoren eller rest-operatoren.
Som du allerede ved, når spread-operatoren
står foran et array eller en streng, opdeler den
dem i separate værdier. Rest-operatoren,
selvom den har den samme syntaks som ...,
er beregnet til noget andet.
Lad os nu finde ud af, til hvad. Lad os sige vi har en funktion, der tager to parametre:
function func(a, b) {
console.log(a);
console.log(b);
}
Du bør allerede vide, at hvis du sender ekstra parametre til funktionen, vil det ikke føre til en fejl:
func(1, 2, 3, 4, 5);
Rest-operatoren rest giver dig mulighed for at få alle
de ekstra parametre som et array. For at gøre dette
tilføjes endnu en parameter til funktionen (obligatorisk
sidst), foran hvilken der skrives 3 punktummer:
function func(a, b, ...rest) {
}
Disse tre punktummer er rest-operatoren, og navnet
på variablen kan have ethvert navn, men
normalt er det også kutyme at kalde den rest.
Lad os kalde vores funktion med et overflødigt
antal parametre og se, hvad der kommer
i parametrene a og b, og hvad -
i resten rest:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // vil udskrive 1
console.log(b); // vil udskrive 2
console.log(rest); // vil udskrive [3, 4, 5]
}
Hvis der ikke er nogen ekstra parametre, vil variablen
rest blive tildelt et tomt array:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // vil udskrive 1
console.log(b); // vil udskrive 2
console.log(rest); // vil udskrive []
}
Funktionen kan overhovedet ikke have parametre,
men du kan stadig tilføje rest til den.
I dette tilfælde kan funktionen kaldes
med et hvilket som helst antal parametre, og alle vil
komme ind i arrayet rest:
function func(...rest) {
console.log(rest);
}