⊗jsPmROInr 294 of 505 menu

Operatore rest in JavaScript

Iniziamo questa lezione con una piccola spiegazione. In tutte le lezioni precedenti di questa sezione, io non vi ho detto tutta la verità sull'operatore ...

In realtà, questo operatore, a seconda del luogo nel codice, può essere chiamato operatore spread oppure operatore rest.

Come già sapete, quando l'operatore spread si trova davanti a un array o a una stringa, li suddivide in valori separati. L'operatore rest, sebbene abbia la stessa sintassi ..., è destinato a un altro scopo.

Ora scopriamo a cosa serve. Supponiamo di avere una funzione che accetta due parametri:

function func(a, b) { console.log(a); console.log(b); }

Dovreste già sapere che se alla funzione vengono passati parametri in eccesso, questo non causerà un errore:

func(1, 2, 3, 4, 5);

L'operatore rest permette di ottenere tutti i parametri in eccesso sotto forma di array. Per fare questo, alla funzione viene aggiunto un altro parametro (obbligatoriamente come ultimo), prima del quale si scrivono 3 punti:

function func(a, b, ...rest) { }

Questi tre punti sono l'operatore rest, e il nome della variabile può essere qualsiasi, ma di solito per convenzione si chiama anch'esso rest.

Chiamiamo la nostra funzione con un numero eccessivo di parametri e vediamo cosa finisce nei parametri a e b, e cosa - nel resto rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // visualizzerà 1 console.log(b); // visualizzerà 2 console.log(rest); // visualizzerà [3, 4, 5] }

Se non ci sono parametri in eccesso, nella variabile rest verrà memorizzato un array vuoto:

func(1, 2); function func(a, b, ...rest) { console.log(a); // visualizzerà 1 console.log(b); // visualizzerà 2 console.log(rest); // visualizzerà [] }

La funzione potrebbe anche non avere parametri, ma è comunque possibile aggiungere rest. In questo caso, la funzione potrà essere chiamata con qualsiasi numero di parametri e tutti finiranno nell'array rest:

function func(...rest) { console.log(rest); }
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta