Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの厳密モードとは何ですか?


厳密モード

厳密モードは、ECMAScript5によってjavascriptに導入されました。厳密モードを使用すると、JavaScriptのサイレントエラーはエラーをスローするため、簡単に検出できます。これにより、JavaScriptのデバッグが非常に簡単になり、開発者が不要なミスを回避するのに役立ちます。

厳密モードでは、宣言されていない変数が検出されると例外がスローされるため、メモリリークが大幅に削減されます。 strictモードが必要なコードの前に「usestrict」を使用すると、strictモードを有効にできます。

次の例では、2つの変数が使用されました。1つは関数の外部にあり、もう1つは関数の内部にあります。関数の外部で使用される変数は宣言されませんが、関数の内部で宣言される変数はvarキーワードを使用して宣言されます。関数内でストリクトモードを使用してもエラーは発生しません。これは、変数が同時に宣言されると同時に、ストリクトモードが使用されていないため、関数外の変数の値が表示されるためです。

例-1

<html>
<body>
<script>
   myString1 = "non-strict mode will allow undeclared variables"
   document.write(myString1);
   document.write("</br>");
   function myFun(){
      "use strict"
      var myString2 = "Strict mode will allow declared variables"
      document.write(myString2);
   }
   myFun();
</script>
</body>
</html>

出力
non-strict mode will allow undeclared variables
Strict mode will allow declared variables

次の例では、変数は関数内で宣言されておらず、strictモードが適用されています。したがって、その変数内の値は実行されず、エラーがスローされます。ブラウザコンソールでエラーを見つけることができます。

例-2

<html>
<body>
<script>
   myString1 = "non-strict mode will allow undeclared variables"
   document.write(myString1);
   document.write("</br>");
   function myFun(){
      "use strict"
      myString2 = "Strict mode will allow declared variables"
      document.write(myString2);
   }
   myFun();
</script>
</body>
</html>

出力
non-strict mode will allow undeclared variables


  1. JavaScriptで厳密モードを有効にする方法は?

    厳密モードは、ES5で導入された機能であり、プログラムまたは関数を「厳密」モードにすることができます。 この厳密なコンテキストにより、特定のアクションが実行されなくなり、より多くの例外がスローされます(通常、ユーザーにより多くの情報が提供されます)。ストリクトモードのいくつかの特定の機能- 宣言されていないが直接割り当てられている変数は失敗します。 foo=bar;を割り当てようとしました。 「foo」が定義されていない場合は失敗します。 厳密モードではevalを使用できません 関数内で引数配列を再割り当てすることはできません withステートメントの使用は許可されて

  2. JavaScriptの「厳密モード」の特徴は何ですか?

    厳密モードは、ES5で導入された機能であり、プログラムまたは関数を「厳密」モードにすることができます。 この厳密なコンテキストにより、特定のアクションが実行されなくなり、より多くの例外がスローされます(通常、ユーザーにより多くの情報が提供されます)。ストリクトモードのいくつかの特定の機能- 宣言されていないが直接割り当てられている変数は失敗します。 foo=bar;を割り当てようとしました。 「foo」が定義されていない場合は失敗します。 厳密モードではevalを使用できません 関数内で引数配列を再割り当てすることはできません withステートメントの使用は許可されて