Wiemy, że let
jest to zastrzeżone słowo kluczowe, które definiuje zmienną w JavaScript.
var let = 2;
console.log(let); // return 2
Dlaczego więc to nie jest błąd?
javascript
MD Tahazzot
źródło
źródło
Odpowiedzi:
let
to tylko słowo zastrzeżone w trybie ścisłym:Wynika to z faktu, że przeglądarki przede wszystkim nadają priorytet kompatybilności wstecznej . Mimo że
let
został wprowadzony w ES2015 (a jego użycie było wcześniej przewidywane), wcześniejsze skrypty, które były używanelet
jako nazwa zmiennej, działałyby zgodnie z oczekiwaniami. Na przykład, jeśli skrypt został napisany w 2008 r .:Wtedy nadal działałby również w 2020 r.
Z bardzo podobnych powodów
async
iawait
są również dozwolone jako nazwy zmiennych .Jeśli chodzi o to, dlaczego stosowanie
let
błędów w trybie ścisłym - tryb ścisły został wprowadzony w ES5 w 2009 roku. Projektanci języków zauważyli, że użycie nowych słów kluczowych do deklarowania zmiennych było możliwe w przyszłości, ale nie było nie był jeszcze osadzony w kamieniu, a ES6 był jeszcze daleko. Po wydaniu ES5 autorzy skryptów mogli włączyć tryb ścisły, aby kod był mniej mylący, i zamieniać ciche błędy na jawne. Chociażlet
nie był użyteczny dla deklaracji zmiennej jeszcze , zakazujące go jako nazwa zmiennej w trybie ścisłym poprawiło czytelność przyszłych scenariuszy, które zdecydowały się w trybie ścisłym, a jednocześnie nie łamiąc żadnych istniejących skryptów.źródło
let
a niektóre inne dzieła działają jako słowa zastrzeżone tylko w trybie ścisłym. Te specyfikacje mówiMożesz zobaczyć
let
listę słów, które są niedozwolone tylko w trybie ścisłym. Jeśli chcesz zgłosić błąd przy używaniulet
jako nazwy zmiennej, możesz użyć trybu ścisłegoźródło
„stosować ścisłe”;
da błąd. użyj narzędzi pakietu, takich jak webpack, chrząknij, aby skompilować swój kod.
źródło