Πώς να ελέγξετε τον τύπο μιας συνάρτησης στο JavaScript

Στα παρακάτω προβλήματα θα χρειαστεί να προσδιορίσετε αν μια συνάρτηση ορίζεται ως Function Declaration ή Function Expression.

Σε απλές περιπτώσεις, αυτό δεν είναι δύσκολο να γίνει οπτικά. Αλλά πώς να ελέγξετε ότι το κάνατε σωστά; Χρησιμοποιήστε τη διαφορά μεταξύ Function Declaration και Function Expression: οι πρώτες μπορούν να κληθούν πριν από τον ορισμό τους, ενώ οι δεύτερες - όχι.

Ας υποθέσουμε ότι έχουμε μια συνάρτηση όπως αυτή:

javascriptlet test = function() {
  console.log('!');
}

Ας καλέσουμε αυτή τη συνάρτηση πριν από τον ορισμό της:

javascripttest(); // θα εμφανίσει σφάλμα στην κονσόλα, άρα είναι Function Expression

let test = function() {
  console.log('!');
}

Ακόμα ένα παράδειγμα:

javascriptfunc(); // θα εμφανίσει '!', άρα είναι Function Declaration

function func() {
  console.log('!');
}

Ας βάλουμε ένα συν στην αρχή της συνάρτησής μας:

javascriptfunc(); // θα εμφανίσει σφάλμα στην κονσόλα, άρα είναι Function Expression

+function func() {
  console.log('!');
}

Δεδομένου ότι η παραπάνω συνάρτηση είναι Function Expression και δεν έχει αντιστοιχηθεί σε καμία μεταβλητή, τότε δεν μπορεί να κληθεί με κανέναν τρόπο, αφού με το όνομα func δεν θα είναι προσβάσιμη.

Задание 1

Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Function Declaration ή Function Expression:

javascriptlet test = function func() {
  console.log('!');
}
Задание 2

Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Function Declaration ή Function Expression:

javascriptconsole.log(
  function func() {
    console.log('!');
  }
);
Задание 3

Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Function Declaration ή Function Expression:

javascript+function func() {
  console.log('!');
}
Задание 4

Προσδιορίστε εάν η παρουσιαζόμενη συνάρτηση είναι Function Declaration ή Function Expression:

javascriptfunction func() {
  console.log('!');
}