⊗jsPmROInr 294 of 505 menu

JavaScript даги 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 деб номлаш урфий хисобланади.

Келинг, функциямизни ортиқча параметрлар билан чақириб кўрамиз ва 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 массивига тушadi:

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