JavaScript - 厳密モード


「厳格な使用」; JavaScript コードを「厳密モード」で実行する必要があることを定義します.
厳密モードの理由
Strict モードを使用すると、「安全な」JavaScript を簡単に記述できます.

Strict モードは、以前に受け入れられた「不適切な構文」を実際のエラーに変更します.

例として、通常の JavaScript では、変数名をタイプミスすると、新しいグローバル変数が作成されます.厳密モードでは、これによりエラーがスローされ、誤ってグローバル変数を作成することができなくなります.

通常の JavaScript では、書き込み不可のプロパティに値を割り当てても、開発者はエラー フィードバックを受け取りません.

厳密モードでは、書き込み不可のプロパティ、getter のみのプロパティ、存在しないプロパティ、存在しない変数、または存在しないオブジェクトへの割り当ては、エラーを表示します.

「use strict」ディレクティブは、ECMAScript バージョン 5 で新しく追加されました.これはステートメントではなく、以前のバージョンの JavaScript では無視されていた適切な式です.

これの目的は、コードが「厳密モード」でのみ実行されるべきであることを示すことです.

厳密モードでは、たとえば、宣言されていない変数を使用することはできません.

最新のブラウザはすべて、Internet Explorer 9 以前を除き、"use strict"をサポートしています: google chrome、firefox、opera.. など

Strict モードの宣言中:

Strict モードは、「use strict」を追加することで宣言されます.スクリプトまたは関数の先頭に.

これにはグローバル スコープの意味があり、コード内のすべての行が厳密モードで実行されます.

例えば:

"use strict";
x = 3.14;       // This will cause an error because x is not declared



別の同様の例:

"use strict";
myFunction();

function myFunction() {
  y = 3.14;   // This will also cause an error because y is not declared
}




x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
  "use strict";
  y = 3.14;   // This will cause an error
}


オブジェクトを宣言せずに使用することは許可されていません.

"use strict";
x = {p1:10, p2:20}; 
     // This will cause an error


変数 (またはオブジェクト) の削除は許可されていません.

"use strict";
let x = 3.14;
delete x;                // This will cause an error


同様に、
パラメータ名の重複は許可されていません
8 進数リテラルは使用できません
8 進数のエスケープ文字は使用できません
読み取り専用プロパティへの書き込みは許可されていません
ワード引数は変数として使用できません
with ステートメントは使用できません