この単純な変更が役立つさまざまなシナリオを見てみましょう。

変数は、宣言されていない場合、グローバル/ウィンドウ オブジェクトに追加されません。

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

div

宣言されていない変数がグローバルオブジェクトに追加される

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

宣言されていない変数は、グローバルオブジェクトに追加されません。 グローバルオブジェクトに追加されない

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

Reserve Word Exception

上記の例でわかるように、左側では単語の登録ができました。 左側では、変数を宣言し、ES6の予約語であるletという名前をつけることができました。

また、右側の例では、strict operation contextに変更することで、シンタックス エラーが発生しています。

関数や変数、関数の引数を削除することができなくなります。

delete 演算子はそれ自体、オブジェクトのプロパティを削除するために使用されます。

divdiv

プロパティの削除の有効な構文

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

div

deleteはプロパティを削除することしかできません

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

タイプエラー例外

evalの使用が制限されてしまいます。

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

using eval

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

div

the eval expression is not executed

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です