Επιτρέψτε το JavaScript Vs var (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε για τη διαφορά μεταξύ let και var στο JavaScript με τη βοήθεια παραδειγμάτων.

Στο JavaScript, τόσο οι λέξεις-κλειδιά όσο varκαι letχρησιμοποιούνται για να δηλώσουν μεταβλητές.

Η letλέξη-κλειδί εισήχθη στην τελευταία έκδοση του JavaScript γνωστή ως ES6 (ES2015) . Και είναι ο προτιμώμενος τρόπος για να δηλώσετε μεταβλητές.

Επιτρέψτε το JavaScript Vs var

Ακολουθεί η επισκόπηση των διαφορών μεταξύ letκαι var.

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

Το JavaScript επιτρέπει το Vs var στο Local Scope

Το var είναι εύρος λειτουργίας

Η μεταβλητή που δηλώνεται μέσα σε μια συνάρτηση με varμπορεί να χρησιμοποιηθεί οπουδήποτε μέσα σε μια συνάρτηση. Για παράδειγμα,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

Στο παραπάνω πρόγραμμα, η μεταβλητή α δηλώνεται με var. Η μεταβλητή a μπορεί να χρησιμοποιηθεί οπουδήποτε μέσα στη συνάρτηση greet.

ας είναι αποκλεισμένη

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

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

Παραγωγή

 hello world Uncaught ReferenceError: το b δεν έχει οριστεί

Στο παραπάνω πρόγραμμα, η μεταβλητή α δηλώνεται μέσα στη συνάρτηση και μπορεί να προσπελαστεί οπουδήποτε μέσα στη συνάρτηση (a γίνεται λειτουργία scoped).

Ωστόσο, η μεταβλητή b δηλώνεται μέσα στη ifδήλωση μπλοκ. Το b θα έχει πεδίο αποκλεισμού και είναι προσβάσιμο μόνο εντός του ifμπλοκ.

Ως εκ τούτου, όταν προσπαθείτε να αποκτήσετε πρόσβαση b εκτός του ifμπλοκ, παρουσιάζεται ένα σφάλμα (όπως φαίνεται παραπάνω στο πρόγραμμα).

Σημείωση : Οι μεταβλητές που δηλώνονται μέσα σε μια συνάρτηση θα καλύπτονται από συνάρτηση και για τα δύο varκαι για let.

let δεν επιτρέπει να επαναπροσδιορίσετε μεταβλητές

1. Μια μεταβλητή που δηλώνεται με varμπορεί να επαναδηλωθεί ξανά. Για παράδειγμα,

 var a = 5; // 5 var a = 3; // 3

Μια μεταβλητή που δηλώνεται με letδεν μπορεί να επαναδηλωθεί εντός του ίδιου μπλοκ ή του ίδιου πεδίου. Για παράδειγμα,

 let a = 5; let a = 3; // error 

Παραγωγή

 Uncaught SyntaxError: Το αναγνωριστικό «a» έχει ήδη δηλωθεί

2. Η εκ νέου δήλωση μιας μεταβλητής με varδιαφορετικό εύρος ή μπλοκ αλλάζει και την τιμή της εξωτερικής μεταβλητής. Για παράδειγμα,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

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

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. Όταν μια μεταβλητή δηλώνεται με varχρησιμοποιείται σε βρόχο, η τιμή αυτής της μεταβλητής αλλάζει. Για παράδειγμα,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

Στο παραπάνω πρόγραμμα, ο forβρόχος επαναπροσδιορίζει τη μεταβλητή a. Εξ ου και η τιμή του aαλλάζει σε 3 στο τέλος.

Όταν μια μεταβλητή που δηλώνεται με let χρησιμοποιείται σε βρόχο, η τιμή μιας μεταβλητής δεν αλλάζει. Για παράδειγμα,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

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

ας δεν επιτρέπεται ανύψωση

Οι μεταβλητές που δηλώνονται με varανυψώνονται στην κορυφή του πεδίου εφαρμογής του προγράμματος. Για παράδειγμα,

 console.log(a); var a; // undefined (not an error)

Η λέξη-κλειδί letδεν επιτρέπει ανύψωση. Για παράδειγμα,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

Αν θέλετε να μάθετε περισσότερα σχετικά με την ανύψωση, επισκεφθείτε την ανύψωση JavaScript.

let and var Υποστήριξη προγράμματος περιήγησης

Τα περισσότερα από τα σύγχρονα προγράμματα περιήγησης υποστηρίζουν τη χρήση του let. Ωστόσο, ορισμένα προγράμματα περιήγησης δεν υποστηρίζουν πλήρως let.

Για να μάθετε περισσότερα, επισκεφτείτε το JavaScript, επιτρέψτε στο πρόγραμμα περιήγησης να υποστηρίξει.

Σημείωση : Σε περίπτωση παγκόσμιας εμβέλειας, varκαι οι δύο letθα συμπεριφέρονται με τον ίδιο τρόπο. Για παράδειγμα,

 var a = 5; // 5

Η μεταβλητή a θα είναι παγκόσμια και μπορεί να προσεγγιστεί οπουδήποτε στο πρόγραμμα.

 let a = 5; // 5

Η μεταβλητή a θα είναι παγκόσμια και μπορεί να προσεγγιστεί οπουδήποτε στο πρόγραμμα.

ενδιαφέροντα άρθρα...