Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語