1. ホーム
  2. ジャバスクリプト

[解決済み】ES6で "use strict "の使用は推奨されない?

2022-04-12 17:22:41

質問

ECMAScript 6にまだ慣れていないのですが、どうしたらいいですか?アプリケーションコードにES6を使用するReact Starter Kitのレポをクローンしたところです。私は驚いたのですが、リンターが コンフィグ の発生を禁止する。 use strict というディレクティブがありますが、これはES6以前のJavaScriptでは推奨されていたはずです。で、何が言いたいかというと

どのように解決するのか?

ES6モジュールは常にストリクトモードになります。の該当箇所を引用すると 仕様書 :

10.2.1 ストリクトモードコード

ECMAScript Script の構文ユニットは、無制限モードまたは厳密モードの構文とセマンティックスのいずれかを使用して処理される場合があります。コードは以下の状況でストリクトモードコードとして解釈される。

  • グローバルコードは、Use Strict ディレクティブ (14.1.1 参照) を含むディレクティブプロログで始まっていれば、ストリクトモードコードです。
  • モジュールコードは常にストリクトモードコードです。
  • ClassDeclaration または ClassExpression のすべての部分は、ストリクト・モード・コードです。
  • eval コードは、Use Strict ディレクティブを含むディレクティブプロログで始まる場合、または eval の呼び出しがストリクトモードコードに含まれる直接 eval (12.3.4.1 参照) の場合、ストリクトモードコードになります。
  • 関数コードは、関連する FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition, ArrowFunction がストリクトモードコードに含まれるか、関数の内部スロット [[ECMAScriptCode]] の値を生成するコードが Use Strict 指示子を含む Directive Prologue から始まる場合は、ストリクトモードコードになります。
  • 組み込みの Function および Generator コンストラクタの引数として提供される関数コードは、最後の引数が String で、処理時に Use Strict ディレクティブを含む Directive Prologue で始まる FunctionBody である場合、ストリクトモードコードになります。