Sobes.tech
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 - Μπλοκ

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