Διαφορά μεταξύ δηλώσεων συνάρτησης
Και οι δύο τρόποι δήλωσης μιας συνάρτησης είναι ισοδύναμοι, αλλά υπάρχει μια σημαντική διαφορά: οι συναρτήσεις που δηλώνονται ως Function Declaration θα είναι διαθέσιμες, ακόμα και αν προσπαθήσουμε να τις καλέσουμε πριν από τη δήλωσή τους.
Δείτε το παράδειγμα:
// Καλούμε τη συνάρτηση πριν από τη δήλωσή της:
func(); // θα εμφανίσει '!'
function func() {
console.log('!');
}
Ενώ τα functional expressions δημιουργούνται τη στιγμή της εκτέλεσης του κώδικα και δεν είναι διαθέσιμα πιο πάνω. Για αυτό αυτός ο κώδικας θα προκαλέσει σφάλμα:
func(); // σφάλμα, η συνάρτηση δεν υπάρχει ακόμα!
let func = function() {
console.log('!');
};
Δημιουργήστε μια συνάρτηση ως Function Declaration. Επαληθεύστε ότι θα είναι διαθέσιμη πριν από το σημείο δήλωσής της.
Δημιουργήστε μια συνάρτηση ως Function Expression. Επαληθεύστε ότι δεν θα είναι διαθέσιμη πριν από το σημείο δήλωσής της.