Rest-operatören i JavaScript
Vi börjar denna lektion med en förklaring.
I alla tidigare lektioner i detta avsnitt har jag
inte berättat hela sanningen om operatören ...
Faktum är att denna operatör beroende på plats i koden kan antingen kallas spread-operatören eller rest-operatören.
Som du redan vet, när spread-operatören
står framför en array eller sträng, delar den upp
dem i separata värden. Rest-operatören,
trots att den har samma syntax som ...,
är avsedd för något annat.
Nu ska vi ta reda på vad. Låt oss anta att vi har en funktion som tar två parametrar:
function func(a, b) {
console.log(a);
console.log(b);
}
Du borde redan veta att om funktionen får för många parametrar leder det inte till ett fel:
func(1, 2, 3, 4, 5);
Operatören rest gör det möjligt att få alla
överflödiga parametrar som en array. För att göra detta
läggs ytterligare en parameter till i funktionen (nödvändigtvis
sist), framför vilken man skriver 3 punkter:
function func(a, b, ...rest) {
}
Dessa tre punkter är rest-operatören, och namnet
på variabeln kan vara vad som helst, men
det är vanligt att också kalla den rest.
Låt oss anropa vår funktion med ett överflöd
antal parametrar och se vad som hamnar
i parametrarna a och b, och vad -
i resten rest:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // skriver ut 1
console.log(b); // skriver ut 2
console.log(rest); // skriver ut [3, 4, 5]
}
Om det inte finns några extra parametrar, kommer variabeln
rest att fyllas med en tom array:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // skriver ut 1
console.log(b); // skriver ut 2
console.log(rest); // skriver ut []
}
Funktionen kan helt sakna parametrar,
men man kan fortfarande lägga till rest.
I detta fall kan funktionen anropas
med valfritt antal parametrar och alla
kommer att hamna i arrayen rest:
function func(...rest) {
console.log(rest);
}