tata bahasa
Biarkan variabel1 = nilai1
parameter
variabel1
Nama variabel untuk dinyatakan.
nilai1
Nilai awal yang ditetapkan untuk variabel.
Komentar
Gunakan pernyataan LET untuk mendeklarasikan variabel yang ruang lingkupnya terbatas pada blok yang menyatakannya. Anda dapat menetapkan nilai ke variabel saat mendeklarasikan variabel, atau Anda dapat menetapkan nilai ke variabel nanti dalam skrip.
Variabel yang dinyatakan menggunakan Let tidak dapat digunakan sebelum deklarasi, jika tidak kesalahan akan disebabkan.
Jika variabel Anda tidak diinisialisasi dalam pernyataan LET, itu akan secara otomatis diberikan nilai JavaScript yang tidak ditentukan.
Contoh:
var l = 10; {let l = 2; // Pada titik ini, l = 2.} // Pada titik ini, l = 10.// Cara tambahan untuk mendeklarasikan variabel menggunakan indeks let.let; let name = "Thomas Jefferson"; Biarkan jawaban = 42, counter, numpages = 10; biarkan myArray = array baru ();Ruang lingkup level blok
untuk (var i = 0; i <10; i ++) {} console.log (i); // 10 untuk (biarkan j = 0; j <10; j ++) {} console.log (j); // "ReferenceError: J tidak didefinisikanTidak ada promosi variabel
console.log (a); // output undefinedConsole.log (b); // ERROR ReferenceErrorConsole.log (c); // ERROR ReferenceErrorVar A = 2; Misalkan b = 2;
Perhatikan perbedaan antara tidak terdefinisi dan ReferenceError
Zona mati sementara (TDZ)
Selama Anda memasuki ruang lingkup tingkat blok saat ini, variabel yang digunakan sudah ada, tetapi mereka adalah zona mati sebelum deklarasi dan tidak dapat dioperasikan.
CATATAN: Tipeof tidak lagi merupakan operasi yang aman 100%
tipe x; // ReferenceErrorType dari y // Undefinedlet X;
Pernyataan berulang tidak diperbolehkan
Biarkan x = 1; biarkan x; // "SyntaxError: Identifier 'X' telah dinyatakan oleh y = 2; var y = 3; // y = 3
Ruang lingkup level blok
// penulisan fungsi anonim (function () {var tmp = ...; ...} ()); // block-level scope writing {let tmp = ...; ...}Mode ketat ES5 menetapkan bahwa fungsi hanya dapat dinyatakan dalam ruang lingkup dan fungsi tingkat atas, dan deklarasi dalam situasi lain (seperti jika kode blok, blok kode loop) akan melaporkan kesalahan.
// es5'use strict '; if (true) {function f () {} // Laporkan kesalahan}Karena ES6 memperkenalkan ruang lingkup tingkat blok, situasi ini dapat dipahami sebagai fungsi yang dinyatakan dalam ruang lingkup tingkat blok, jadi tidak ada kesalahan yang dilaporkan, tetapi kawat gigi yang membentuk blok tidak dapat hilang.
// Laporkan kesalahan 'Gunakan strict'; if (true) function f () {}Variabel global yang dinyatakan tidak lagi menjadi properti jendela
"Gunakan ketat"; var a = 1; console.log (window.a) // 1let b = 1; console.log (window.b) // tidak ditentukan