Hoisting JavaScript
- Προηγούμενη σελίδα Χώρος δράσης JS
- Επόμενη σελίδα Σφιχτό μοτίβο JS
Το Hoisting είναι η προεπιλεγμένη συμπεριφορά του JavaScript να μεταφέρει τις δηλώσεις στην κορυφή.
Οι δηλώσεις του JavaScript μεταφέρονται.
Στο JavaScript, μπορεί να δηλωθεί η μεταβλητή μετά από τη χρήση της.
Αντίθετα, μπορεί να χρησιμοποιηθεί πριν από τη δήλωση της μεταβλητής.
Παράδειγμα 1 μεΠαράδειγμα 2 οι αποτελέσματα είναι τα ίδια:
Παράδειγμα 1
x = 5; // Αποδοχή του 5 στο x elem = document.getElementById("demo"); // Αναζήτηση στοιχείου elem.innerHTML = x; // Εμφάνιση του x στο στοιχείο var x; // Υπογραφή x
Παράδειγμα 2
var x; // Υπογραφή x x = 5; // Αποδοχή του 5 στο x elem = document.getElementById("demo"); // Αναζήτηση στοιχείου elem.innerHTML = x; // Εμφάνιση του x στο στοιχείο
Για να κατανοήσετε αυτό, πρέπει να κατανοήσετε τον όρο "hoisting".
Το Hoisting είναι η προεπιλεγμένη συμπεριφορά του JavaScript να μεταφέρει όλες τις δηλώσεις στην κορυφή του τρέχοντος ορίζοντα (μεταφέρεται στην κορυφή του τρέχοντος script ή της τρέχουσας λειτουργίας).
οι λέξεις-κλειδιά let και const
με let
ή const
Οι μεταβλητές που δηλώνονται και οι σταθερές δεν μεταφέρονται στην κορυφή!
Παρακαλώ JS Let / Const Παρακαλώ διαβάστε περισσότερα για το let και το const στο.
Οι initializations του JavaScript δεν μεταφέρονται.
Το JavaScript μεταφέρει μόνο τις δηλώσεις και όχι τις initializations.
Παράδειγμα 1 μεΠαράδειγμα 2 οι αποτελέσματα δεν είναι τα ίδια:
Παράδειγμα 1
var x = 5; // Εν�始化 x var y = 7; // Υπογραφή y elem = document.getElementById("demo"); // Αναζήτηση στοιχείου elem.innerHTML = x + " " + y; // Εμφάνιση του x και του y
Παράδειγμα 2
var x = 5; // Εν�始化 x elem = document.getElementById("demo"); // Αναζήτηση στοιχείου elem.innerHTML = x + " " + y; // Εμφάνιση του x και του y var y = 7; // Υπογραφή y
Μπορεί να ισχύει ότι η y στο τελευταίο παράδειγμα παραμένει μη ορισμένη;
Γιατί μόνο η δήλωση (var y) και όχι η�始化 (=7) μεταφέρεται στην κορυφή.
Όπως το hoisting, η y έχει ήδη ανακηρυχθεί πριν από τη χρήση της, αλλά επειδή η ανακάλυψη δεν έχει προχωρήσει, η τιμή της y παραμένει μη ορισμένη.
Το παράδειγμα 2 είναι το ίδιο:
Παράδειγμα
var x = 5; // Εν�始化 x var y; // Δημιουργία y elem = document.getElementById("demo"); // Αναζήτηση στοιχείου elem.innerHTML = x + " " + y; // Εμφάνιση του x και του y y = 7; // Αναθέστε το 7 στη y
Δηλώστε τις μεταβλητές σας στην κορυφή!
Το hoisting (για πολλούς προγραμματιστές) είναι ένας άγνωστος ή αγνοημένος τρόπος λειτουργίας του JavaScript.
Αν οι προγραμματιστές δεν κατανοούν το hoisting, το πρόγραμμα μπορεί να περιέχει σφάλματα (λάθη).
Για να αποφύγετε τα σφάλματα, παρακαλώ δηλώστε όλες τις μεταβλητές σας στην αρχή κάθε χώρου δράσης.
Επειδή αυτό είναι ο τρόπος που το JavaScript εξηγεί τον κώδικα, παραμείνετε σε αυτή τη καλή συνήθεια.
Το JavaScript σε σφιχτό μοτίβο δεν επιτρέπει τη χρήση μεταβλητών χωρίς να έχουν προηγουμένως ανακηρυχθεί.
Παρακαλώ μάθετε στο επόμενο κεφάλαιοuse strict。”
- Προηγούμενη σελίδα Χώρος δράσης JS
- Επόμενη σελίδα Σφιχτό μοτίβο JS