Користећи различите ЈаваСцрипт савете и пречице за синтаксу, ове функције ће вам помоћи да решите многе уобичајене проблеме.
ЈаваСцрипт је де фацто језик за прављење модерних веб и мобилних апликација. Покреће широк спектар пројеката, од једноставних веб локација до динамичних, интерактивних апликација.
Да бисте креирали производе које ће корисници волети и ценити, неопходно је да напишете код који није само функционалан већ и ефикасан и лак за одржавање. Чист ЈаваСцрипт код је од виталног значаја за успех било које веб или мобилне апликације, било да је у питању хоби пројекат или сложена комерцијална апликација.
Шта је тако добро у ЈаваСцрипт функцијама?
Функција је суштинска компонента за писање кода било које апликације. Дефинише део кода за вишекратну употребу који можете позвати да бисте извршили одређени задатак.
Осим њихове поновне употребе, функције су веома разноврсне. Дугорочно, они поједностављују процес скалирања и одржавања кодне базе. Од стране креирање и коришћење ЈаваСцрипт функција, можете уштедети много времена за развој.
Ево неколико корисних ЈаваСцрипт функција које могу значајно побољшати квалитет кода вашег пројекта.
1. једном
Ова функција вишег реда премотава другу функцију како би се осигурало да је можете позвати само једанпут. Требало би тихо да игнорише накнадне покушаје да се позове резултујућа функција.
Размотрите ситуацију у којој желите да направите ХТТП АПИ захтеве за преузимање података из базе података. Можете приложити једном функционише као повратни позив за функција слушаоца догађаја, тако да се активира једном, и не више.
Ево како бисте могли да дефинишете такву функцију:
конст једном = (фунц) => {
дозволити резултат;
дозволити фунцЦаллед = лажно;повратак(...аргс) => {
ако (!фунцЦаллед) {
резултат = фунц(...аргс);
фунцЦаллед = истина;
}
повратак резултат;
};
};
Функција једном узима функцију као аргумент и враћа нову функцију коју можете позвати само једном. Када први пут позовете нову функцију, она покреће оригиналну функцију са датим аргументима и чува резултат.
Сваки наредни позив нове функције враћа сачувани резултат без поновног покретања оригиналне функције. У наставку погледајте имплементацију:
// Дефинишите функцију за преузимање података из базе података
функцијагетУсерДата() {
// ...
}
// добијамо верзију функције гетУсерДата која се може покренути само једном
конст макеХТТПРекуестОнлиОнце = једном (гетУсерДата);
конст усерДатаБтн = документ.куериСелецтор("#бтн");
усерДатаБтн.аддЕвентЛистенер("кликни", макеХТТПРекуестОнлиОнце);
Коришћењем функције једном можете гарантовати да ће код послати само један захтев, чак и ако корисник кликне дугме неколико пута. Ово избегава проблеме са перформансама и грешке које могу бити резултат сувишних захтева.
2. цев
Ова функција цеви вам омогућава да повежете више функција заједно у низу. Функције у низу ће узети резултат претходне функције као улаз, а последња функција у низу ће израчунати коначни резултат.
Ево примера у коду:
// Дефинишите функцију цеви
конст цев = (...функције) => {
повратак(арг) => {
фунцс.форЕацх(функција(фунц) {
арг = функција (арг);
});повратак арг;
}
}// Дефинишите неке функције
конст аддОне = (а) => а + 1;
конст дупло = (Икс) => Икс * 2;
конст квадрат = (Икс) => к * к;// Креирајте цев са функцијама
конст миПипе = пипе (аддОне, доубле, скуаре);
// Тестирајте цев са улазном вредношћу
конзола.лог (миПипе(2)); // Излаз: 36
Функције цеви могу побољшати читљивост и модуларност кода омогућавајући вам да концизно пишете сложену логику обраде. Ово може учинити ваш код разумљивијим и лакшим за одржавање.
3. Мапа
Функција мап је метод уграђене класе ЈаваСцрипт Арраи. Он креира нови низ применом функције повратног позива на сваки елемент оригиналног низа.
Пролази кроз сваки елемент у улазном низу, прослеђује га као улаз функцији повратног позива и умеће сваки резултат у нови низ.
Оно што је важно напоменути је да се оригинални низ ни на који начин не мења током овог процеса.
Ево примера како се користи Мапа:
конст бројеви = [1, 2, 3, 4, 5];
конст дупли бројеви = бројеви.мапа(функција(број) {
повратак број * 2;
});
конзола.лог (доублеНумберс);
// Излаз: [2, 4, 6, 8, 10]
У овом примеру, функција мапе понавља сваки елемент у низу бројева. Сваки елемент множи са 2 и враћа резултате у новом низу.
Генерално, функције мапе елиминишу потребу за користећи петље у ЈаваСцрипт-у, посебно бесконачне — бесконачне петље могу да изазову значајне рачунске трошкове, што доводи до проблема са перформансама у апликацији. Ово чини базу кода сажетијом и мање склоном грешкама.
4. покупити
Ова функција одабира вам омогућава да селективно издвојите одређена својства из постојећег објекта и генеришете нови објекат са тим својствима као резултат израчунавања.
На пример, узмите у обзир функцију извештаја у апликацији, користећи функцију бирања, можете без напора да прилагодите различите извештаје на основу жељених корисничких информација експлицитним навођењем својстава која желите да укључите у разне извештаји.
Ево примера у коду:
конст пицк = (предмет, ...кључеви) => {
повратак кеис.редуце((резултат, кључ) => {
ако (објецт.хасОвнПроперти (кључ)) {
резултат[кључ] = објекат[кључ];
}
повратак резултат;
}, {});
};
Функција пицк узима објекат и било који број кључева као аргументе. Тастери представљају својства која желите да изаберете. Затим враћа нови објекат који садржи само својства оригиналног објекта са одговарајућим кључевима.
конст корисник = {
име: 'Мартин',
старост: 30,
емаил: 'Мартин@иахоо.цом',
};
конзола.лог (изабери (корисник, 'име', 'старост'));
// Излаз: { наме: 'Мартин', старост: 30 }
У суштини, функција одабира може инкапсулирати сложену логику филтрирања у једну функцију, чинећи код лакшим за разумевање и отклањање грешака.
Такође може промовисати поновну употребу кода, пошто можете поново да користите функцију одабира у својој бази кода, смањујући дуплирање кода.
5. зип
Ова зип функција комбинује низове у један низ точака, који одговарају одговарајућим елементима из сваког улазног низа.
Ево примера имплементације зип функције:
функцијазип(...низови) {
конст макЛенгтх = Матх.мин(...арраис.мап(низ => арраи.ленгтх));повратакНиз.фром(
{ дужина: максимална дужина },
(_, индекс) => низови.мапа(низ => низ [индекс])
);
};конст а = [1, 2, 3];
конст б = ['а', 'б', 'ц'];
конст ц = [истина, лажно, истина];
конзола.лог (зип (а, б, ц));
// Излаз: [[1, 'а', тачно], [2, 'б', нетачно], [3, 'ц', тачно]]
Зип функција прихвата улазне низове и израчунава њихову најдужу дужину. Затим креира и враћа један низ користећи метод Арраи.фром ЈаваСцрипт. Овај нови низ садржи елементе из сваког улазног низа.
Ово је посебно корисно ако морате одмах да комбинујете податке из више извора, уклањајући потребу за писањем сувишног кода који би иначе затрпао вашу базу кодова.
Рад са ЈаваСцрипт функцијама у вашем коду
ЈаваСцрипт функције у великој мери побољшавају квалитет вашег кода обезбеђујући поједностављен и компактан начин за руковање великим делом логике програмирања и за мале и за велике базе кода. Разумевањем и коришћењем ових функција можете писати ефикасније, читљивије апликације које се могу одржавати.
Писање доброг кода омогућава прављење производа који не само да решавају одређени проблем за крајње кориснике, већ то чине на начин који се лако мења.