Operator rest v JavaScript
To lekcijo začnimo z nekaj pojasnili.
Vse prejšnje lekcije tega razdelka vam
nismo povedal vse resnice o operatorju ...
Pravzaprav se lahko ta operator glede na mesto v kodu imenuje bodisi operator spread, bodisi operator rest.
Kot že veste, ko operator spread
stoji pred matriko ali nizom, jih razdeli
na posamezne vrednosti. Operator rest,
čeprav ima enako sintakso v obliki ...,
je namenjen nečemu drugemu.
Zdaj bomo ugotavljali, čemu. Naj imamo funkcijo, ki sprejme dva parametra:
function func(a, b) {
console.log(a);
console.log(b);
}
Že morate vedeti, da če funkciji podamo odvečne parametre, to ne povzroči napake:
func(1, 2, 3, 4, 5);
Operator rest omogoča, da dobimo vse
odvečne parametre v obliki matrike. Za to
se funkciji doda še en parameter (obvezno
zadnji), pred katerim napišemo 3 pike:
function func(a, b, ...rest) {
}
Te tri pike so operator rest, ime
spremenljivke je lahko poljubno, vendar
ga običajno tudi imenujemo rest.
Pokličimo našo funkcijo s prekomernim
številom parametrov in poglejmo, kaj pride
v parametra a in b, in kaj -
v ostanek rest:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // izpiše 1
console.log(b); // izpiše 2
console.log(rest); // izpiše [3, 4, 5]
}
Če odvečnih parametrov ne bo, se bo v spremenljivko
rest zapisala prazna matrika:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // izpiše 1
console.log(b); // izpiše 2
console.log(rest); // izpiše []
}
Funkcija lahko sploh nima parametrov,
vendar ji lahko dodamo rest.
V tem primeru lahko funkcijo pokličemo
s poljubnim številom parametrov in vsi
bojo prišli v matriko rest:
function func(...rest) {
console.log(rest);
}