Η έκφραση αριστερά της συνάρτησης στο JavaScript
Ας εξετάσουμε τον ακόλουθο κώδικα:
+function func() {
console.log('!');
}
Όπως ήδη γνωρίζετε, αυτή η συνάρτηση είναι μια λειτουργική έκφραση, παρά το γεγονός ότι έχει οριστεί όνομα (έχουμε ήδη διαπιστώσει ότι η παρουσία ονόματος γενικά δεν είναι κριτήριο). Ας αφαιρέσουμε αυτό το συν - και παίρνουμε Δήλωση Συνάρτησης (Function Declaration):
function func() {
console.log('!');
}
Ας βάλουμε + στην γραμμή πριν από την
συνάρτηση - θα γίνει ξανά Λειτουργική Έκφραση (Function Expression):
+
function func() {
console.log('!');
}
Και τώρα μετά το συν βάζουμε τον αριθμό 1
και ένα ερωτηματικό - η συνάρτησή μας θα γίνει Δήλωση
Συνάρτησης (Function Declaration):
+1;
function func() {
console.log('!');
}
Γιατί συμβαίνει αυτό: επειδή στην πρώτη γραμμή γράφτηκε μία ολοκληρωμένη εντολή, που κλείνει με τελεία με ερωτηματικό. Επομένως, αυτή η εντολή δεν επηρεάζει καθόλου τη συνάρτησή μας.
Στην πραγματικότητα, το ερωτηματικό μπορεί να αφαιρεθεί, αφού στο JavaScript δεν είναι υποχρεωτικό - η συνάρτηση παραμένει Δήλωση Συνάρτησης (Function Declaration):
+1
function func() {
console.log('!');
}
Αλλά αν μετά το 1 βάλουμε ακόμα ένα
συν, τότε η συνάρτηση θα γίνει Λειτουργική Έκφραση (Function Expression):
+1+
function func() {
console.log('!');
}
Γιατί συμβαίνει αυτό: επειδή στην πρώτη γραμμή υπάρχει μια ημιτελής έκφραση - υπάρχει ένα συν και μετά από αυτό τίποτα. Επομένως, ο διερμηνευτής JavaScript θεωρεί ότι αυτό το συν αναφέρεται στη γραμμή παρακάτω, δηλαδή στη συνάρτησή μας.
Εάν όμως στην πρώτη γραμμή υπάρχει μια ολοκληρωμένη έκφραση, τότε το JavaScript αυτόματα βάζει τελεία με ερωτηματικό και αυτή η έκφραση δεν επηρεάζει με κανέναν τρόπο τη συνάρτησή μας.
Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Δήλωση Συνάρτησης (Function Declaration) ή Λειτουργική Έκφραση (Function Expression):
-
function func() {
console.log('!');
}
Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Δήλωση Συνάρτησης (Function Declaration) ή Λειτουργική Έκφραση (Function Expression):
-1;
function func() {
console.log('!');
}
Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Δήλωση Συνάρτησης (Function Declaration) ή Λειτουργική Έκφραση (Function Expression):
-1
function func() {
console.log('!');
}
Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Δήλωση Συνάρτησης (Function Declaration) ή Λειτουργική Έκφραση (Function Expression):
1
function func() {
console.log('!');
}
Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Δήλωση Συνάρτησης (Function Declaration) ή Λειτουργική Έκφραση (Function Expression):
-1-
function func() {
console.log('!');
}