Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

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

Постоји неколико начина за креирање функција у ЈаваСцрипт-у. Овде ћете научити различите начине за креирање функција и како их користити.

Декларације функција: једноставан начин

Један од начина на који можете да креирате функције у ЈаваСцрипт-у је кроз декларације функција. Декларација функције је функција у ЈаваСцрипт-у која прати синтаксу испод.

функцијафунцтионНаме(параметрима) {
// код иде овде...
повратак"Ово је декларација функције";
}

Компоненте горњег блока кода укључују:

  • Тхе функција кључна реч: Ова кључна реч декларише функцију.
  • фунцтионНаме: Ово је назив функције. У пракси, требало би да буде што је више могуће дескриптивни и смислени, указујући шта функција ради.
  • параметрима
    instagram viewer
    : Ово представља параметре функције. Параметри су опциона листа променљивих које можете проследити функцији када је позовете.
  • Тело функције: Ово садржи код који ће функција покренути када је позовете. Окружен је витичастим заградама {} и може да садржи било који важећи ЈаваСцрипт код.
  • Тхе повратак наредба: Ова изјава зауставља извршавање функције и враћа наведену вредност. У горњем случају, позивање функције би вратило стринг „Ово је декларација функције“.

На пример, декларација функције испод узима три броја као параметре и враћа њихов збир.

функцијааддТхрееНумберс(а, б, ц) {
повратак а + б + ц;
}

Да бисте позвали декларацију функције у ЈаваСцрипт-у, напишите име функције праћено скупом заграда (). Ако функција узима било које параметре, проследите их као аргументе унутар заграда.

На пример:

аддТхрееНумберс(1, 2, 3) // 6

Блок кода изнад позива тхе аддТхрееНумбер функције и прослеђује 1, 2 и 3 као аргументе функцији. Ако покренете овај код, он ће вратити вредност 6.

ЈаваСцрипт дизалице декларације функција, што значи да их можете позвати пре него што их дефинишете.

На пример:

исХоистед(); // Функција је подигнута

функцијаисХоистед() {
конзола.Пријава("Функција је подигнута");
повратакистина;
}

Као што је приказано у блоку кода изнад, позивање исХоистед пре него што се дефинише не би избацило грешку.

Изрази функције: Функције као вредности

У ЈаваСцрипт-у можете дефинисати функцију као израз. Затим можете доделити вредност функције променљивој или је користити као аргумент другој функцији.

Такође су познате као анонимне функције јер немају имена и можете их позвати само из променљиве којој сте их доделили.

Испод је синтакса за израз функције:

конст фунцтионНаме = функција () {
повратак"Израз функције";
};

Да бисте позвали израз функције у ЈаваСцрипт-у, напишите име променљиве које сте доделили функцији праћено скупом заграда (). Ако функција узима било које параметре, проследите их као аргументе унутар заграда.

На пример:

фунцтионНаме(); // Израз функције

Изрази функција су згодни када креирате функције које се покрећу у другим функцијама. Типични примери укључују руковаоце догађајима и њихове повратне позиве.

На пример:

буттон.аддЕвентЛистенер("кликни", функција (догађај) {
конзола.Пријава(„Кликнули сте на дугме!“);
});

Пример изнад је користио израз функције који узима ан догађај аргумент као повратни позив на аддЕвентЛистенер функција. Не морате експлицитно да позивате функцију када користите израз функције као повратни позив. Аутоматски га позива његова родитељска функција.

У горњем случају, када слушалац догађаја прими а кликните догађај, позива функцију повратног позива и прослеђује догађај објекат као аргумент.

За разлику од декларација функција, изрази функције се не подижу, тако да их не можете позвати пре него што их дефинишете. Покушај приступа функцијском изразу пре него што га дефинишете резултираће а РеференцеЕррор.

На пример:

исХоистед(); // РеференцеЕррор: Није могуће приступити 'исХоистед' пре иницијализације

конст исХоистед = функција () {
конзола.Пријава("Функција је подигнута");
};

Функције стрелице: компактне и ограничене

ЕС6 је увео скраћеницу за писање анонимних функција у ЈаваСцрипт-у под називом функције стрелице. Имају сажету синтаксу која може учинити ваш код читљивијим, посебно када се ради о кратким функцијама у једном реду.

За разлику од других метода креирања функција, функције са стрелицама не захтевају функција кључна реч. Израз функције стрелице састоји се од три дела:

  • Пар заграда (()) који садржи параметре. Можете изоставити заграде ако функција има само један параметар.
  • Стрела (=>), који се састоји од знака једнакости (=) и знак веће од (>).
  • Пар витичастих заграда које садрже тело функције. Можете изоставити витичасте заграде ако се функција састоји од једног израза.

На пример:

// Један параметар, имплицитни повратак
конст фунцтионНаме = параметар =>конзола.Пријава(„Функција стрелице са једним параметром“)

// Више параметара, експлицитан повратак
конст фунцтионНаме = (параметар_1, параметар_2) => {
повратак„Функција стрелице са више параметара“
};

Када изоставите витичасте заграде, функција стрелице имплицитно враћа појединачни израз, тако да нема потребе за повратак кључна реч. С друге стране, ако не изоставите витичасте заграде, морате експлицитно да вратите вредност користећи повратак кључна реч.

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

На пример:

конст фоо = {
име: "Даве",
поздрави: функција () {
сетТимеоут(() => {
конзола.Пријава(`Здраво, моје име је ${ово.наме}`);
}, 1000);
},
};

фоо.греет(); // Записује „Здраво, моје име је Даве“ после 1 секунде

У горњем примеру, функција стрелице унутар поздравити метода има приступ ово.име, иако је сетТимеоут функција то позива. Нормална функција би имала своје ово везан за глобални објекат.

Као што назив имплицира, одмах позвана функција (ИИФЕ) је функција која се покреће чим је дефинисана.

Ево структуре ИИФЕ:

(функција () {
// код овде
})();

(() => {
// код овде
})();

(функција (парам_1, парам_2) {
конзола.лог (парам_1 * парам_2);
})(2, 3);

ИИФЕ се састоји од израза функције умотаног у пар заграда. Пратите га са пар заграда изван оквира да бисте позвали функцију.

Можете да користите ИИФЕ да креирате опсеге, сакријете детаље имплементације и делите податке између више скрипти. Некада су коришћени као а систем модула у ЈаваСцрипт-у.

Креирање функције на много различитих начина

Разумевање како да креирате функције у ЈаваСцрипт-у је кључно. Ово важи за основну функцију која обавља једноставно израчунавање или софистицирану функцију која је у интеракцији са другим деловима вашег кода.

Можете користити технике о којима смо горе говорили да бисте изградили функције у ЈаваСцрипт-у и структурирали и организовали свој код. Изаберите приступ који најбоље одговара вашим захтевима, јер сваки има различите предности и примене.