Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ let και var;

sobes.tech AI

Απάντηση από AI

Το var έχει λειτουργικό ή παγκόσμιο πεδίο ορατότητας, μπορεί να δηλωθεί ξανά και να αντικατασταθεί. Υποβάλλεται σε Hoisting, αρχικοποιείται ως undefined. Το let έχει πεδίο μπλοκ, μπορεί να αντικατασταθεί, αλλά όχι να δηλωθεί ξανά στο ίδιο πεδίο. Επίσης, υποβάλλεται σε Hoisting, αλλά βρίσκεται στη "χρονική ζώνη θανάτου" μέχρι την αρχικοποίηση.

Πίνακας σύγκρισης:

Χαρακτηριστικό var let
Πεδίο ορατότητας Λειτουργικό/Παγκόσμιο Μπλοκ
Δηλωμένο ξανά Ναι Όχι
Υποστηρίζει αντικατάσταση Ναι Ναι
Hoisting Ναι Ναι
Αρχικοποίηση undefined - (χρονοζώνη θανάτου)

Παράδειγμα:

// var
function παράδειγμαVar() {
  var x = 10;
  if (true) {
    var x = 20; // Επαναδήλωση του x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function παράδειγμαLet() {
  let y = 10;
  if (true) {
    let y = 20; // Νέος μεταβλητός y στο μπλοκ
    console.log(y); // 20
  }
  console.log(y); // 10
}

παράδειγμαVar();
παράδειγμαLet();