우리는 알고 let
A는 예약 된 자바 스크립트에서 변수를 정의하는 키워드.
var let = 2;
console.log(let); // return 2
그렇다면 왜 이것이 오류가 아닌가?
답변
let
엄격 모드에서 예약어입니다.
'use strict';
var let = 5;
Uncaught SyntaxError : 예기치 않은 엄격한 모드 예약어
브라우저는 일반적으로 이전 버전과의 호환성을 우선적으로 고려하기 때문 입니다. let
ES2015에 도입 되었지만 (그리고 그 이전에는 그 사용이 예상 되었지만 ) let
변수 이름으로 사용 된 이전 스크립트 는 원하는대로 계속 작동합니다. 예를 들어, 스크립트가 2008 년에 작성된 경우 :
var let = 2;
console.log(let);
그런 다음 2020 년에도 계속 작동 할 것입니다.
매우 유사한 이유로, async
그리고 await
또한 변수 이름으로 허용 .
let
엄격 모드-엄격 모드에서 오류를 사용하는 이유는 2009 년에 ES5에 도입되었습니다. 당시 언어 설계자들은 변수를 선언하기 위해 새 키워드를 사용하는 것이 미래에는 가능하다는 것을 알았습니다. 아직 돌로 설정되지 않았으며 ES6는 아직 멀었습니다. ES5가 나오면 스크립트 작성자는 코드를 혼동하지 않고 자동 오류를 명시 적 오류로 변경하기 위해 엄격 모드를 선택할 수 있습니다. 하지만이 let
변수 선언에 사용할 수 없었다 아직 엄격 모드에서 변수 이름의 가독성 향상으로 금지, 미래 엄격 모드로 선택했다 스크립트를 또한 기존의 스크립트를 차단하지 않으면 서,.
답변
let
다른 작품 중 일부는 엄격 모드에서만 예약어 역할을합니다. 사양은 말한다
엄격 모드에서 허용되지 않는 : 문맥 엄격 모드 코드에서 식별자로 허용되는 경우 :
let
,static
,implements
,interface
,package
,private
,protected
, 그리고public
;
let
엄격 모드에서만 허용되지 않는 단어 목록 내부 를 볼 수 있습니다 . let
변수 이름으로 사용하기 위해 오류를 발생 시키려면 엄격 모드를 사용할 수 있습니다
"use strict";
var let = 3
답변
‘엄격한 사용’;
오류가 발생합니다. webpack, grunt와 같은 번들 도구를 사용하여 코드를 컴파일하십시오.