funcțiile JavaScript sunt definite cu cuvântul cheiefunction
.
puteți utiliza o declarație de funcții sau o expresie de funcții.
Declarații de funcții
mai devreme în acest tutorial, ați aflat că funcțiile sunt declarate cu următoarea sintaxă:
/ / cod de executat
}
funcțiile declarate nu sunt executate imediat. Acestea sunt „salvate pentru utilizare ulterioară” și vor fi executate mai târziu, când sunt invocate (solicitate).
exemplu
întoarcere a * b;
}
încercați-l singur ”
punct și virgulă sunt folosite pentru a separa executabil JavaScript declarații.
deoarece o declarație de funcție nu este o declarație executabilă, nu este obișnuit să o încheiați cu punct și virgulă.
expresii funcționale
o funcție JavaScript poate fi, de asemenea, definită folosind o expresie.
o expresie funcție poate fi stocată într-o variabilă:
exemplu
încercați singur „
după ce o expresie a funcției a fost stocată într-o variabilă, variabila poate fi utilizată ca funcție:
exemplu
var z = x(4, 3);
încercați singur ”
funcția de mai sus este de fapt o funcție anonimă (o funcție fără nume).
funcțiile stocate în variabile nu au nevoie de nume de funcții. Ele sunt întotdeauna invocate (numite) folosind numele variabilei.
funcția de mai sus se termină cu punct și virgulă, deoarece face parte dintr-o instrucțiune executabilă.
Constructorul Function ()
după cum ați văzut în exemplele anterioare, funcțiile JavaScript sunt definite cu cuvântul cheie function
.
funcțiile pot fi definite și cu un constructor de funcții JavaScript încorporat numit Function()
.
exemplu
var x = myFunction(4, 3);
încercați singur ”
de fapt nu trebuie să utilizați constructorul funcției. Exemplul de mai sus este același cu scrierea:
exemplu
var x = myFunction(4, 3);
încercați-l singur ”
de cele mai multe ori, puteți evita utilizarea cuvântului cheie new
în JavaScript.
funcția de ridicare
mai devreme în acest tutorial, ai aflat despre „ridicare” (JavaScript ridicare).
ridicare este comportamentul implicit JavaScript de declarații se deplasează în partea de sus a domeniului de aplicare curent.
ridicarea se aplică declarațiilor variabile și declarațiilor funcționale.
din această cauză, funcțiile JavaScript pot fi apelate înainte de a fi declarate:
funcția myFunction (y) {
întoarcere y * y;
}
funcțiile definite folosind o expresie nu sunt ridicate.
funcții de auto-invocare
expresiile funcției pot fi făcute „auto-invocare”.
o expresie de auto-invocare este invocată (pornită) automat, fără a fi apelată.
expresiile funcționale se vor executa automat dacă expresia este urmată de ().
nu puteți auto-invoca o declarație de funcție.
trebuie să adăugați paranteze în jurul funcției pentru a indica faptul că este o expresie funcție:
exemplu
var x = „Bună ziua!!”; / / Mă voi invoca
})();
încercați-l singur ”
funcția de mai sus este de fapt o funcție anonimă de auto-invocare (funcție fără nume).
funcțiile pot fi utilizate ca valori
funcțiile JavaScript pot fi utilizate ca valori:
exemplu
întoarcere a * b;
}
var x = funcția myFunction(4, 3);
încercați-l singur ”
funcțiile JavaScript pot fi utilizate în expresii:
exemplu
întoarcere a * b;
}
var x = myFunction(4, 3) * 2;
încercați-l singur „
funcțiile sunt obiecte
operatorul typeof
din JavaScript returnează” funcția ” pentru funcții.
dar, funcțiile JavaScript pot fi descrise cel mai bine ca obiecte.
funcțiile JavaScript au atât proprietăți, cât și metode.
proprietatea arguments.length
returnează numărul de argumente primite atunci când funcția a fost invocată:
exemplu
întoarce argumente.lungime;
}
încercați singur ”
metoda toString()
returnează funcția ca șir:
exemplu
întoarcere a * b;
}
var txt = myFunction.toString ();
Încearcă-l singur ”
o funcție definită ca proprietatea unui obiect, se numește o metodă a obiectului.
o funcție concepută pentru a crea obiecte noi, se numește constructor de obiecte.
funcții săgeată
funcții săgeată permite o sintaxă scurtă pentru scrierea expresiilor funcțiilor.
nu aveți nevoie de cuvântul cheie function
, de cuvântul cheie return
și de parantezele ondulate.
exemplu
var x = funcție (x, y) {
întoarcere x * y;
}
// ES6
const x =(x, y) => x * y;
încercați-l singur ”
funcțiile săgeată nu au propriile lor this
.Ele nu sunt potrivite pentru definirea metodelor de obiect.
funcțiile săgeții nu sunt ridicate. Acestea trebuie definite înainte de a fi utilizate.
utilizarea const
este mai sigură decât utilizarea var
, deoarece o expresie a funcției este întotdeauna o valoare constantă.
puteți omite cuvântul cheie return
și parantezele buclate numai dacă funcția este o singură instrucțiune. Din această cauză, ar putea fi un obicei bun să le păstrați întotdeauna:
exemplu
încercați-l singur ”
funcțiile săgeată nu sunt acceptate în IE11 sau mai devreme.