De rest operator in JavaScript
Laten we deze les beginnen met een korte uitleg.
In alle voorgaande lessen van deze sectie heb ik
niet de volledige waarheid verteld over de operator ...
In werkelijkheid kan deze operator, afhankelijk van zijn positie in de code, ofwel de spread operator ofwel de rest operator worden genoemd.
Zoals je al weet, wanneer de spread operator
voor een array of string staat, splitst hij deze
op in afzonderlijke waarden. De rest operator,
hoewel hij dezelfde syntaxis heeft in de vorm van ...,
is bedoeld voor iets anders.
Laten we nu uitzoeken waarvoor. Stel we hebben een functie die twee parameters accepteert:
function func(a, b) {
console.log(a);
console.log(b);
}
Je zou al moeten weten dat als je extra parameters doorgeeft aan de functie, dit niet tot een fout leidt:
func(1, 2, 3, 4, 5);
De rest operator maakt het mogelijk om alle
extra parameters te ontvangen in de vorm van een array. Hiervoor
wordt er nog een parameter aan de functie toegevoegd (verplicht
als laatste), waarvoor 3 punten worden geschreven:
function func(a, b, ...rest) {
}
Deze drie punten zijn de rest operator, en de naam
van de variabele kan elke willekeurige naam hebben, maar
meestal is het gebruikelijk om hem ook rest te noemen.
Laten we onze functie aanroepen met een overvloed
aan parameters en kijken wat er in de parameters
a en b terechtkomt, en wat -
in de rest rest:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // geeft 1 weer
console.log(b); // geeft 2 weer
console.log(rest); // geeft [3, 4, 5] weer
}
Als er geen extra parameters zijn, dan wordt in de variabele
rest een lege array geschreven:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // geeft 1 weer
console.log(b); // geeft 2 weer
console.log(rest); // geeft [] weer
}
De functie kan zelfs helemaal geen parameters hebben,
maar toch kan men rest toevoegen.
In dit geval kan de functie worden aangeroepen
met elk aantal parameters en ze zullen
allemaal in de array rest terechtkomen:
function func(...rest) {
console.log(rest);
}