私はまだECMAScript 6に慣れていません。アプリケーションコードにES6を使用するReact Starter Kitレポをクローンしました。私は、リンターが configured であることに驚きました。これは、私がES6より前のJavaScriptで推奨されていたと考えていたuse strict
ディレクティブの出現を禁止しています。ポイントは何ですか?
ES6モジュールは常に厳密モードです。 仕様 の関連部分を引用するには、
10.2.1厳密モードコード
ECMAScriptスクリプト構文単位は、無制限または厳密モードの構文およびセマンティクスを使用して処理できます。次の状況では、コードは厳密モードコードとして解釈されます。
- グローバルコードがUse Strict Directiveを含むDirective Prologueで始まっている場合、グローバルコードはstrictモードコードです(14.1.1を参照)。
- モジュールコードは常に厳密モードコードです
- ClassDeclarationまたはClassExpressionのすべての部分は厳密モードコードです。
- 厳密な使用法指令を含むDirective Prologueで始まる場合、または厳密なモードコードに含まれる直接の評価(12.3.4.1を参照)である場合、評価コードは厳密モードコードです。
- 関連するFunctionDeclaration、FunctionExpression、GeneratorDeclaration、GeneratorExpression、MethodDefinition、またはArrowFunctionのいずれかが厳密モードコードに含まれている場合、または関数の[[ECMAScriptCode]]内部スロットの値を生成するコードがディレクティブプロローグで始まる場合、関数コードは厳密モードコードです。これにはUse Strict Directiveが含まれています。
- 最後の引数が、処理時にUse Strict Directiveを含むDirective Prologueで始まるFunctionBodyであるStringの場合、組み込みのFunctionおよびGeneratorコンストラクタへの引数として提供される関数コードは、厳密モードコードです。