JavaScript'теги rest оператору
Бул сабакты бир аз түшүндүрмө менен баштайлы.
Ушул бөлүмдөгү мурунку бардык сабактарда мен
сизге ... оператору жөнүндө толук чындыкты
айткан жокмун.
Чынында, бул оператор коддогу ордуна жараша же 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);
}