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();