Μια δήλωση είναι μια δήλωση ονοματισμένης συνάρτησης. μια έκφραση εκχωρεί μια συνάρτηση σε μια μεταβλητή. Η πρακτική διαφορά είναι το hoisting.
js
();
() { ; }
();
expressed = () { ; };
Μια δήλωση είναι μια δήλωση ονοματισμένης συνάρτησης. μια έκφραση εκχωρεί μια συνάρτηση σε μια μεταβλητή. Η πρακτική διαφορά είναι το hoisting.
();
() { ; }
();
expressed = () { ; };
Οι δηλώσεις συνάρτησης ανυψώνονται με το σώμα τους, οπότε ολόκληρη η συνάρτηση υπάρχει πριν η εκτέλεση φτάσει σε αυτό. Μια έκφραση συνάρτησης είναι απλώς μια τιμή που εκχωρείται σε μια μεταβλητή — στο σημείο της πρώιμης κλήσης, η expressed είναι ακόμα undefined (με var) ή στο TDZ (με let/const).
// expression — for callbacks, conditional definitions, arrow functions
const handler = () => doThing();
const fn = condition ? a : b;
arr.map(x => x * 2);
// declaration — clear, hoisted top-level functions
function calculateTotal(items) { ... }
Οι δηλώσεις διαβάζονται καλά για συναρτήσεις ονοματισμένες στο ανώτατο επίπεδο και ωφελούνται από το hoisting (μπορείτε να τις ορίσετε μετά τη χρήση τους). Οι εκφράσεις είναι απαραίτητες για arrow functions, callbacks, IIFEs και εκχώρηση συναρτήσεων υπό όρους. Οι arrow functions είναι πάντα εκφράσεις.