この単純な変更が役立つさまざまなシナリオを見てみましょう。
変数は、宣言されていない場合、グローバル/ウィンドウ オブジェクトに追加されません。
デフォルトでは、宣言されていない変数が定義されると、その変数はグローバル/ウィンドウ オブジェクトに追加されます。 これでは、エラーが発生したり、見つけるのが難しいかもしれません。

div
このようなシナリオを回避するためには。 use strictを宣言することができます。 ストリクトモードでは、宣言されていない変数の使用を許可しません。

将来予備語として使われる可能性のある変数を宣言することはできません。

。
上記の例でわかるように、左側では単語の登録ができました。 左側では、変数を宣言し、ES6の予約語であるletという名前をつけることができました。
また、右側の例では、strict operation contextに変更することで、シンタックス エラーが発生しています。
関数や変数、関数の引数を削除することができなくなります。
delete 演算子はそれ自体、オブジェクトのプロパティを削除するために使用されます。

divdiv
delete演算子は、関数の削除には使用できません。 変数や引数を削除することはできません。

div
ストリクトモードの場合、Type Error例外が発生します。 これは、プロパティを削除しようとしているのではなく、値そのものを削除しようとしているために起こります。

。
evalの使用が制限されてしまいます。
JSでは、JavaScriptの式を文字列形式で実行するためにeval関数が使われます。

同じコードをstrict modeで実装してみましょう。

div