【JavaScript ECMAScript】SyntaxError: "use strict" not allowed in function with non-simple parametersエラーの使い方
SyntaxError: "use strict" not allowed in function with non-simple parametersエラーの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
SyntaxError: "use strict" not allowed in function with non-simple parametersオブジェクトは、JavaScriptコード内でStrictモードのディレクティブである"use strict"が、ECMAScript 2015(ES6)以降で導入された「非単純な引数」を持つ関数の内部で不適切に宣言された場合に発生する構文エラーを表すオブジェクトです。
このエラーは、関数の引数にデフォルト引数、分割代入、Restパラメーターといった新しい構文が使われている際、その関数の本体の冒頭、引数定義よりも後の位置に"use strict"を記述すると発生します。JavaScriptエンジンは、これらの非単純な引数の構文解析と、Strictモードを適用するための"use strict"ディレクティブの配置ルールとの間に矛盾があると判断するため、構文エラーとして通知します。
Strictモードは、JavaScriptをより安全で厳格に記述するためのルールセットを有効にするもので、ES6よりも前に導入されました。しかし、ES6で導入された新しい引数構文と、Strictモードの適用方法が組み合わさると、このエラーが発生する可能性があります。
このエラーを解決するためには、"use strict"ディレクティブを関数の本体内に置くのではなく、スクリプト全体の先頭やモジュールの先頭に配置し、コード全体をStrictモードで実行することが推奨されます。現代のJavaScript開発では、通常、モジュールバンドラーやトランスパイラを利用して、ファイル全体をStrictモードで扱うことが一般的であるため、関数の内部に"use strict"を記述する必要性はほとんどありません。
構文(syntax)
1function exampleFunction(param = 1) { 2 "use strict"; 3}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません