⊗jsPmROInr 294 of 505 menu

Оператор rest у JavaScript-у

Ову лекцију почећемо са неким појашњењем. Све претходне лекције овог одељка нисам вам рекао целу истину о оператору ...

Заправо, овај оператор у зависности од места у коду може се називати или оператором spread, или оператором rest.

Као што већ знате, када оператор spread стоји испред низа или стринга, он их дели на појединачне вредности. Оператор rest, иако има исти синтаксу у виду ..., је намењен за нешто друго.

Сада ћемо разјашњавати за шта. Нека имамо функцију која прихвата два параметра:

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

Требало би да већ знате да ако функцији проследимо вишак параметара, то неће изазвати грешку:

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

Оператор rest омогућава да добијемо све вишкове параметара у виду низа. За то у функцију додамо још један параметар (обавезно последњи), испред кога пишемо 3 тачке:

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

Ове три тачке су оператор rest, а име променљиве може бити било које, али обично га такође прихваћено назвати rest.

Хајде да позовемо нашу функцију са вишком параметара и погледајмо шта улази у параметре a и b, а шта - у остатак rest:

func(1, 2, 3, 4, 5); function func(a, b, ...rest) { console.log(a); // исписаће 1 console.log(b); // исписаће 2 console.log(rest); // исписаће [3, 4, 5] }

Ако вишка параметара не буде, онда ће у променљиву rest бити уписан празан низ:

func(1, 2); function func(a, b, ...rest) { console.log(a); // исписаће 1 console.log(b); // исписаће 2 console.log(rest); // исписаће [] }

Функција уопште може немати параметре, али при томе у њу можемо додати rest. У том случају функцију можемо позвати са било колико параметара и сви ће они упасти у низ rest:

function func(...rest) { console.log(rest); }
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј