Το "Πεδίο εφαρμογής" αναφέρεται στο τρέχον πλαίσιο εκτέλεσης στο οποίο ο κώδικάς σας μπορεί να παραπέμπει ή να "βλέπει" τιμές και εκφράσεις. Οι μεταβλητές, τα αντικείμενα και οι συναρτήσεις από διάφορα μέρη του κώδικα είναι προσβάσιμα με βάση το εύρος τους.

Στο JavaScript, οι μεταβλητές, τα αντικείμενα και οι συναρτήσεις μπορούν να έχουν ένα καθολικό εύρος, ένα εύρος λειτουργικής μονάδας, ένα εύρος μπλοκ ή ένα εύρος συνάρτησης.

Παγκόσμιο Πεδίο σε JavaScript

Οποιαδήποτε τιμή δηλώνεται εκτός μιας συνάρτησης ή ενός μπλοκ σε ένα σενάριο έχει καθολικό εύρος και οποιοδήποτε άλλο αρχείο σεναρίου στο πρόγραμμά σας μπορεί να έχει πρόσβαση σε αυτό.

Για παράδειγμα, δηλώνοντας μια καθολική μεταβλητή σε ένα αρχείο:

// index.js
ας globalVariable = "κάποια αξία"

Σημαίνει ότι οποιοδήποτε άλλο σενάριο στο πρόγραμμά σας μπορεί να έχει πρόσβαση σε αυτό:

// otherScript.js
κονσόλα.log (globalVariable) // κάποια τιμή

Δήλωση μεταβλητών JavaScript σε παγκόσμιο επίπεδο είναι κακή πρακτική γιατί μπορεί να οδηγήσει σε ρύπανση του χώρου ονομάτων. Ο καθολικός χώρος ονομάτων είναι ο επάνω χώρος του Javascript που περιέχει τις μεταβλητές, τα αντικείμενα και τις συναρτήσεις. Σε ένα πρόγραμμα περιήγησης, συνδέεται με το

instagram viewer
Παράθυρο αντικείμενο, ενώ το NodeJS χρησιμοποιεί ένα αντικείμενο με όνομα παγκόσμια.

Η ρύπανση του παγκόσμιου χώρου ονομάτων μπορεί να οδηγήσει σε σύγκρουση ονομάτων. Αυτή είναι μια κατάσταση στην οποία ο κώδικάς σας προσπαθεί να χρησιμοποιήσει το ίδιο όνομα μεταβλητής για διαφορετικά πράγματα στον ίδιο χώρο ονομάτων. Συχνά συναντώνται συγκρούσεις ονομάτων σε μεγάλα έργα που χρησιμοποιούν πολλές βιβλιοθήκες τρίτων.

Πεδίο εφαρμογής ενότητας

Μια λειτουργική μονάδα είναι ένα αυτόνομο αρχείο που ενθυλακώνει και εξάγει κομμάτια κώδικα για άλλες λειτουργικές μονάδες σε ένα έργο για χρήση. Σας επιτρέπει να οργανώνετε και να διατηρείτε πιο αποτελεσματικά τη βάση κωδικών σας.

Επισημοποιήθηκαν οι ενότητες ES το μοτίβο της μονάδας JavaScript σε JavaScript το 2015.

Οι μεταβλητές που δηλώνετε σε μια λειτουργική μονάδα καλύπτονται από αυτήν την ενότητα, πράγμα που σημαίνει ότι κανένα άλλο μέρος του προγράμματος δεν μπορεί να έχει πρόσβαση σε αυτές.

Μπορείτε να χρησιμοποιήσετε μια μεταβλητή που δηλώνεται σε μια λειτουργική μονάδα εκτός αυτής μόνο εάν η λειτουργική μονάδα εξάγει αυτήν τη μεταβλητή χρησιμοποιώντας το εξαγωγή λέξη-κλειδί. Στη συνέχεια, μπορείτε να εισαγάγετε αυτό το όνομα σε άλλη λειτουργική μονάδα χρησιμοποιώντας το εισαγωγή λέξη-κλειδί.

Ακολουθεί ένα παράδειγμα που δείχνει την εξαγωγή μιας κλάσης:

// index.js
εξαγωγήτάξηFoo{
κατασκευαστής(ιδιότητα_1, ιδιοκτησία_2) {
Αυτό.property_1 = ιδιοκτησία_1
Αυτό.property_2 = ιδιοκτησία_2
}
}

Και δείτε πώς μπορείτε να εισαγάγετε αυτήν την ενότητα και να χρησιμοποιήσετε την ιδιότητα που εξάγει:

// someModule.js
εισαγωγή { Φου } από "./index.js"

const bar = new Foo('foo', 'μπαρ')

κονσόλα.log (bar.property_1) // foo

Τα αρχεία δεν δηλώνονται ως λειτουργικές μονάδες από προεπιλογή στο JavaScript.

Στην JavaScript από την πλευρά του πελάτη, μπορείτε να δηλώσετε μια δέσμη ενεργειών ως λειτουργική μονάδα ορίζοντας το τύπος αποδίδω σε μονάδα μέτρησης στο γραφή ετικέτα:

<τύπος σεναρίου="μονάδα μέτρησης" src="index.js"></script>

Στο NodeJS, μπορείτε να δηλώσετε ένα σενάριο ως λειτουργική μονάδα ορίζοντας το τύπος ιδιοκτησία σε μονάδα μέτρησης στο δικό σου πακέτο.json αρχείο:

{
"τύπος": "μονάδα μέτρησης"
}

Μπλοκ πεδίου

Ένα μπλοκ στο JavaScript είναι το σημείο όπου ξεκινούν και τελειώνουν ένα ζευγάρι σγουρά άγκιστρα.

Μεταβλητές που δηλώνονται σε ένα μπλοκ με το αφήνω, και συνθ Οι λέξεις-κλειδιά καλύπτονται από αυτό το μπλοκ, που σημαίνει ότι δεν μπορείτε να έχετε πρόσβαση σε αυτές εκτός αυτού. Αυτό το εύρος δεν ισχύει για μεταβλητές που δηλώνονται χρησιμοποιώντας το var λέξη-κλειδί:

{ // Αρχή μπλοκ
const ένα = '1'
ας δύο = '2'
var τρία = '3'
} // Τέλος μπλοκ

κονσόλα.log (ένας) // ρίχνει σφάλμα

κονσόλα.log (τρία) // "3"

Οι μεταβλητές που περικλείονται στο παραπάνω μπλοκ και δηλώνονται ως const ή let είναι προσβάσιμες μόνο μέσα στο μπλοκ. Ωστόσο, μπορείτε να αποκτήσετε πρόσβαση στη μεταβλητή που δηλώθηκε χρησιμοποιώντας το var λέξη-κλειδί έξω από το μπλοκ.

Πεδίο λειτουργίας

Οι μεταβλητές που δηλώνονται μέσα σε μια συνάρτηση αναφέρονται συνήθως ως τοπικές μεταβλητές και καλύπτονται από τη συνάρτηση. Δεν μπορείτε να έχετε πρόσβαση σε αυτά εκτός λειτουργίας. Αυτό το πεδίο εφαρμογής ισχύει για μεταβλητές που δηλώνονται με το var, αφήνω, και συνθ λέξεις-κλειδιά.

Εφόσον οι μεταβλητές που δηλώνονται σε μια συνάρτηση είναι τοπικές στη συνάρτηση, τα ονόματα της μεταβλητής μπορούν να επαναχρησιμοποιηθούν. Η επαναχρησιμοποίηση ονομάτων μεταβλητών με εύρος συναρτήσεων είναι γνωστή ως σκίαση μεταβλητών και η εξωτερική μεταβλητή λέγεται ότι είναι "σκιασμένη".

Για παράδειγμα:

λειτουργίαπολλαπλασιάζω() {
αφήνω ένα = 1
var δύο = 2
συνθ τρεις = 3

ΕΠΙΣΤΡΟΦΗ ένα δύο τρία
}

// Μεταβλητή σκίαση
συνθ τρία = 'τρεις' // Δεν παρουσιάζει σφάλμα

Η κατανόηση των κανόνων οριοθέτησης είναι ζωτικής σημασίας

Η κατανόηση των διαθέσιμων πλαισίων στο JavaScript διευκολύνει την αποφυγή σφαλμάτων. Η προσπάθεια πρόσβασης σε μια μεταβλητή που δεν είναι διαθέσιμη σε ένα συγκεκριμένο πεδίο είναι μια ώριμη πηγή σφαλμάτων.

Η κατανόηση του εύρους περιλαμβάνει επίσης έννοιες όπως η ρύπανση του παγκόσμιου χώρου ονομάτων, η οποία μπορεί να κάνει τον κώδικά σας πιο επιρρεπή σε σφάλματα.