Mengapa kata kunci cadangan JavaScript diizinkan sebagai nama variabel?

Jawaban:

25

let hanya kata khusus dalam mode ketat:

'use strict';
var let = 5;

Uncaught SyntaxError: Mode ketat milik kata yang tidak terduga

Ini karena browser umumnya memprioritaskan kompatibilitas mundur di atas segalanya. Meskipun letdiperkenalkan di ES2015 (dan penggunaannya sudah terlihat sebelumnya), skrip sebelumnya yang digunakan letsebagai nama variabel akan terus berfungsi sesuai keinginan. Misalnya, jika skrip Anda ditulis pada 2008:

var let = 2;
console.log(let);

Maka itu akan terus bekerja pada tahun 2020 juga.

Untuk alasan yang sangat mirip, asyncdan awaitjuga diizinkan sebagai nama variabel .

Adapun mengapa penggunaan letkesalahan dalam mode ketat - mode ketat diperkenalkan di ES5, pada tahun 2009. Saat itu, perancang bahasa melihat bahwa penggunaan kata kunci baru untuk menyatakan variabel adalah kemungkinan di masa depan, tetapi tidak belum siap, dan ES6 masih jauh. Setelah ES5 keluar, penulis skrip dapat memilih untuk masuk ke mode ketat untuk membuat kode kurang membingungkan, dan mengubah kesalahan diam menjadi kesalahan eksplisit. Meskipun letitu tidak dapat digunakan untuk deklarasi variabel belum , melarang itu sebagai nama variabel dalam mode ketat meningkatkan pembacaan masa depan skrip yang memilih ke mode ketat, sementara juga tidak melanggar script yang ada.

Performa Tertentu
sumber
2

letdan beberapa karya lainnya hanya berfungsi sebagai kata yang dilindungi undang-undang dalam mode ketat. The spesifikasi mengatakan

Dianulir dalam modus ketat : Mereka yang secara kontekstual dianulir sebagai pengidentifikasi, dalam kode modus ketat: let, static, implements, interface, package, private, protected, dan public;

Anda dapat melihat letdi dalam daftar kata-kata yang hanya dilarang dalam mode ketat. Jika Anda ingin melempar kesalahan untuk digunakan letsebagai nama variabel, Anda dapat menggunakan mode ketat

"use strict";
var let = 3

Maheer Ali
sumber
0

'gunakan yang ketat';

itu akan memberikan kesalahan. gunakan alat bundel seperti webpack, mendengus untuk mengkompilasi kode Anda.

Arunesh Saxena
sumber
baca pertanyaannya dua kali
Manjeet Thakur