strict useは厳密モードです


ネイティブECMAScriptモジュール(インポートおよびエクスポート文)とES 6クラスの内部では、厳密モードは常に有効になっており、無効にすることはできません.
だから、最初に知っていることは
  • 1 .今日は厳しいモードを毎日使用します.
  • 厳格なモードはすべての主要なブラウザでサポートされます.
    スタティックモードを宣言するための構文は、副作用がないようにJavaScriptの古いバージョンと互換性があるように設計されました.So "use strict"; その意味を理解している新しいコンパイラにとって重要なことです.
    厳密なモードコードと非厳格モードコードが共存することができますので、スクリプトは厳密にモードを厳密に選ぶことができます.
    だから、2番目のことを知っている.
  • 2 ."use strict"; はJavaScriptの以前のバージョンでは無視される.
  • The "use strict" 指令はecmascriptバージョン5で新たになった.
    EcmasScript 2009は、また、ES 5として知られて、JavaScriptへの最初の大きな改正でした.
    厳密モードはサブセットではなく、意図的に通常のコードから異なる意味を持っています.
    strict mode構文と実行時の動作を変更します.
    JavaScriptは初心者の開発者にとって簡単であるように設計されていて、時には非誤り操作に意味的なエラーでなければならない操作を解決します.時々、これはすぐに問題を修正しますが、時々、これは将来悪い問題を引き起こします.
    strict modeはエラーとしてこれらのエラーを扱います.
    だから、3番目のことを知っている.
  • 3 .厳格モードはモダニティの始まりです.
  • それはJavaScriptパラダイムに前後に述べます.現在のJavaScriptプログラミングの基礎の基礎です.
  • 変更されたエラーは、構文エラーやランタイムでエラーに変換されます.
  • 変更は、指定された名前の使用のための特定の変数が計算される方法を単純化しました.
  • 変更は、“セキュア”のJavaScriptを書くことが容易になります.
  • 将来のECMAScript進化を予想する変化

  • 過去への時間旅行
    こんな驚くべきことができた時がありました.
  • あなたは、宣言されていない変数(WTF)を使用することができます!😳)
  • // set a variable without the 'var' keyword
    x = 3.14;
    
    function myFunction() {
      y = 3.14;
    }
    
  • 変数名を間違えて新しいグローバル変数
  • ユニークな関数のパラメータ名(WTF)!🤨)
  • // available through 
    arguments[i]
    
  • コントロール構造内の関数を宣言する
  • if (true) {
      function f() { }
      f();
    }
    
    for (var i = 0; i < 5; i++) {
      function f2()
      f2();
    }
    
  • eval ()は変数の作成を許可されました.
  • eval ("var x = 2");
    alert (x);
    
  • 通常モードでthis はグローバルオブジェクト( window )を返す
  • function myFunction() {
      alert(this);
    }
    myFunction();
    
  • delete キーワードの削除
  • // variable/object/function/property
    var x = 3.14;
    delete x;
    

    未来へ
    厳密なモードでは、既存の変数/オブジェクト、非書き込み可能プロパティへの代入など.はエラーをスローします.
    厳密なモードの変更は、以前は“間違った構文”を実際のエラーに受け入れました.
    厳格なモードを簡単に“セキュア”のJavascriptを書くことができます.
    したがって、3番目の4番目の知っている:
  • 4 . strictモードでは、言語を新しいプログラミングスタイルに移動します.
  • 一般に、厳しいモードで有効になっている変更は、より良いものです.
    その弾力性を改良することは、問題があるとき、何が起こっているかを理解することをより簡単にします.
    JavascriptはECMAScript 3まで例外処理を行わなかった.
    JavaScriptの作成者であるBlendan Eichはいくつかのプログラミング言語からJava言語(構文、プリミティブ値対オブジェクト)、スキーム、AWK(ファーストクラスの関数)、自己(プロトタイプ型継承)、PerlとPython(文字列、配列、正規表現)から非常に速く言語を作成するしかなかった.
    一方、JavaScriptはかなりの機能性を欠いていた.一方、それはあなたがこれらの問題を回避できるようにいくつかの強力な機能を持っていた.
    その影響を与えられて、JavaScriptは機能的なプログラミング(高次の機能、ビルトイン・マップ、縮小、その他)とオブジェクト指向プログラミング(オブジェクト、遺産)の混合であるプログラミング・スタイルを可能にします.
    それで、知っていて、最後まで知っています:
  • 4 .厳格モードは初期のスキームと可能性をより正式なOOPに中断します.
  • すべてのプログラムで厳格なモードを使用できます.“use strict”ディレクティブは、“strict mode”でJavaScriptコードを実行することを定義します."use strict" は文字列式です.古いブラウザはエラーが発生しない場合はエラーをスローしません.

    strict modeの宣言
    厳格モードは、"use strict"; スクリプトまたは関数の先頭に.
    スクリプトの先頭で宣言され、グローバルスコープ(スクリプト内のすべてのコードが厳密モードで実行されます)を持ちます:
    "use strict";
    x = 3.14;  // throw error
    var x = 3.14;  // OK
    
    関数の内部で宣言されているのは、ローカルスコープ(関数内部のコードのみが厳密モード)を持っています:
    function myFunction() {
      "use strict";
      y = 3.14;   // throw error
      var y = 3.14;   // OK
    }
    
    ローカルまたはグローバル宣言"use strict" 任意の法的割り当てによってエラーフィードバックをスローします.

    結論
    最近では、厳密なモードを使用すると、ネイティブのEcmasScriptモジュール(インポートおよびエクスポート文)とES 6クラスの中で、厳密モードは常に有効になって無効にすることはできません.
    厳密なモードコードと非厳格モードコードが共存することができます.一般に、厳しいモードで有効になっている変更は、より良いものです.
    strict modeは、構文と実行時の動作を変更し、以前に受け入れられた“悪い構文”の変更を実際のエラーに変更します.
    strict modeはこれらのエラーをエラーとして扱います."use strict" は文字列式です.古いブラウザはエラーが発生しない場合はエラーをスローしません.
    スタティックモードを宣言するための構文は、副作用がないようにJavaScriptの古いバージョンと互換性があるように設計されました.So "use strict"; その意味を理解している新しいコンパイラにとって重要なことです.
    スクリプトの先頭で宣言されます(グローバルスコープ)
    // global scope - (on top)
    "use strict";
    
    // local scope - inside block
    function myFunction() {
      "use strict";
      [...]
    }