let vs var

Το 2015, κυκλοφόρησε ή ES6 (ECMAScript 6). Η EcmaScript δεν είναι άλλη γλώσσα, είναι στην πραγματικότητα το επίσημο όνομα για τηJavaScript.

Οι αλλαγές έγιναν προκειμένου να βελτιωθεί η σύνταξη και η λειτουργικότητα της JavaScript.

Μία από τις κύριες αλλαγές αλλάζει πώς δηλώνουμε μια μεταβλητή με την αντικατάσταση του  var  με το let

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

Όταν δηλώνουμε μια μεταβλητή χρησιμοποιώντας var, αυτή η μεταβλητή έχει πεδίο "δράσης"  - function scope. Με αυτό, εννοούμε ότι η καθορισμένη μεταβλητή είναι προσβάσιμη σε οποιοδήποτε τμήμα του κώδικα της συνάρτησης.

Ας δούμε ένα παράδειγμα:

function myFunc () {
for (var i=0; i<10; i++) { 
// do something 
};
console.log(i);
}
myFunc ();

Σε αυτή την περίπτωση, το αποτέλεσμα του console.log θα είναι 10.

Εάν κάνουμε το ίδιο πράγμα χρησιμοποιώντας let:

function myFunc () {
for (let i=0; i<10; i++) { 
// do something 
};
console.log(i);
}
myFunc ();

το αποτέλεσμα θα είναι: "Uncaught ReferenceError: i is not defined"

Αυτό συμβαίνει επειδή σε αντίθεση με var, το let έχει πεδίο "δράσης" - block scope. Αυτό σημαίνει ότι η μεταβλητή είναι διαθέσιμη μόνο μέσα στο μπλοκ όπου δημιουργήθηκε

Στο επόμενο κεφάλαιο θα μάθουμε ποιο είναι το πλεονέκτημα της χρήσης block scope αντί γοα function scope. 

Σημείωση: Και τα δύο παραπάνω παραδείγματα δεν λειτουργούν εάν τα πληκτρολογήσετε απευθείας στην κονσόλα σας.