Junior
Τι είναι η εμβέλεια (scope) των μεταβλητών στη JavaScript;
sobes.tech AI
Απάντηση από AI
Ο πεδίο ορίζει τη διαθεσιμότητα μεταβλητών, συναρτήσεων και αντικειμένων σε ένα συγκεκριμένο μέρος του κώδικα.
Στην JavaScript, υπάρχουν διάφοροι τύποι πεδίων:
- Παγκόσμιο πεδίο (Global Scope): Μεταβλητές που δηλώνονται εκτός οποιασδήποτε συνάρτησης ή μπλοκ, είναι προσβάσιμες από οποιοδήποτε σημείο του κώδικα.
- Πεδίο συνάρτησης (Function Scope): Μεταβλητές που δηλώνονται μέσα σε μια συνάρτηση (πριν από το ES6), είναι προσβάσιμες μόνο μέσα σε αυτή τη συνάρτηση και τις εσωτερικές συναρτήσεις της.
- Πεδίο μπλοκ (Block Scope): Μεταβλητές που δηλώνονται με
letκαιconstμέσα σε μπλοκ (π.χ.,{}ή βρόχους), είναι προσβάσιμες μόνο μέσα σε αυτό το μπλοκ.
Παράδειγμα:
// Παγκόσμιο πεδίο
let globalVar = "Είμαι παγκόσμιος";
function someFunction() {
// Πεδίο συνάρτησης (πριν από το ES6)
var functionVar = "Είμαι μέσα στη συνάρτηση";
console.log(globalVar); // Προσβάσιμη παγκόσμια μεταβλητή
if (true) {
// Πεδίο μπλοκ (για let και const)
let blockVar = "Είμαι μέσα στο μπλοκ";
console.log(functionVar); // Προσβάσιμη μεταβλητή συνάρτησης
console.log(blockVar); // Προσβάσιμη μεταβλητή μπλοκ
}
// console.log(blockVar); // Σφάλμα: το blockVar δεν είναι προσβάσιμο εδώ
}
someFunction();
// console.log(functionVar); // Σφάλμα: το functionVar δεν είναι προσβάσιμο εδώ
Λέξεις-κλειδιά για δήλωση μεταβλητών και η επίδρασή τους στο πεδίο:
| Λέξη-κλειδί | Πριν από το ES6 πεδίο | Μετά το ES6 πεδίο |
|---|---|---|
var |
Λειτουργικό | Λειτουργικό |
let |
- | Μπλοκ |
const |
- | Μπλοκ |
Η κατανόηση του πεδίου είναι κρίσιμη για την αποφυγή συγκρούσεων ονομάτων μεταβλητών και για τη συγγραφή καθαρού και προβλέψιμου κώδικα.