아직 ECMAScript 6에 익숙하지 않습니다. 방금 응용 프로그램 코드에 ES6을 사용하는 React Starter Kit 저장소를 복제했습니다. 린터가 지시어의 발생을 금지 하도록 구성 되어 있다는 사실에 놀랐습니다 use strict
.ES6 이전의 JavaScript에서 권장되었다고 생각했습니다. 그래서 요점이 뭐야?
답변
ES6 모듈은 항상 엄격 모드입니다. 스펙 의 관련 부분을 인용하려면 다음을 수행 하십시오 .
10.2.1 엄격한 모드 코드
ECMAScript 스크립트 구문 단위는 제한되지 않거나 엄격 모드 구문 및 의미를 사용하여 처리 될 수 있습니다. 다음과 같은 상황에서 코드는 엄격 모드 코드로 해석됩니다.
- 전역 코드는 엄격한 사용 지침 (14.1.1 참조)이 포함 된 Directive Prologue로 시작하는 경우 엄격한 모드 코드입니다.
- 모듈 코드는 항상 엄격 모드 코드입니다.
- ClassDeclaration 또는 ClassExpression의 모든 부분은 엄격 모드 코드입니다.
- Eval 코드는 Use Strict Directive가 포함 된 Directive Prologue로 시작하거나 Eval에 대한 호출이 Strict Mode 코드에 포함 된 직접 Eval (12.3.4.1 참조) 인 경우 엄격한 모드 코드입니다.
- 연관된 FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition 또는 ArrowFunction이 엄격한 모드 코드에 포함되어 있거나 함수의 [[ECMAScriptCode]] 내부 슬롯의 값을 생성하는 코드가 Directive Prologue로 시작하는 경우 함수 코드는 엄격한 모드 코드입니다. 엄격한 사용 지침이 포함되어 있습니다.
- 마지막 인수가 처리 될 때 엄격한 지시문이 포함 된 지시문 프롤로그로 시작하는 FunctionBody 인 문자열 인 경우 내장 함수 및 생성자 생성자에 인수로 제공되는 함수 코드는 엄격한 모드 코드입니다.