web-dev-qa-db-ja.com

ES6で "use strict"を使用することはお勧めできませんか?

私はまだECMAScript 6に慣れていません。アプリケーションコードにES6を使用するReact Starter Kitレポをクローンしました。私は、リンターが configured であることに驚きました。これは、私がES6より前のJavaScriptで推奨されていたと考えていたuse strictディレクティブの出現を禁止しています。ポイントは何ですか?

180
Midiparse

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コンストラクタへの引数として提供される関数コードは、厳密モードコードです。
236
Kit Sunde