坑道を埋める:use strict

1195 ワード

一、何ですか
通常動作モード以外に、ECMAscript 5は第二の運転モードを追加しました.「厳格モード」(strit mode).名前の通り、このようなモードはJavascriptをより厳しい条件で実行させる(ES 6はデフォルトでは厳格なモードを使用する).
どうしてですか
「厳格モード」はJavascriptがより合理的で、より安全で、より厳格な発展方向を表しています.IE 10を含む主流ブラウザは、すでにそれを支持しています.多くの大項目はすでに全面的にそれを抱き始めました.同じコードでも、「厳格モード」では、異なる運転結果が出る可能性があります.いくつかの「ノーマルモード」で動作できるステートメントは、「厳格モード」では動作しません.これらの内容を把握することは、Javascriptをより詳細に理解し、より良いプログラマーになるためです.
三、どう使いますか
スクリプトファイルのヘッダ(スクリプトファイル全体に対して)または関数内(単一の関数に対して)
"use strict";  //                   ,    。
フィールドが厳密モードに入ることを表します.
四、どこが悪いですか
  • 変数は宣言してから
  • を使用しなければなりません.
  • 関数のパラメータは同じ名前の属性を持つことができません.
  • with文は使えません.
  • 読み取り専用属性に値を付けてはいけません.そうでないと
  • エラーが発生します.
  • は、プレフィクス0を使用して8進数を表してはいけません.さもなければ、エラー
  • を報告します.
  • は削除できない属性を削除できません.そうでなければエラー
  • を報告します.
  • 変数delete propを削除できません.エラーが発生します.属性delete globalを削除するしかありません.
  • evalは、その外層作用領域に変数を導入しない
  • .
  • evalとargmentsは、
  • の値を再割り当てすることができません.
  • アーグメンントは、関数パラメータの変化を自動的に反映しない
  • アーグメンツ.callee
  • は使えません.
  • アーグメンツ.caller
  • は使用できません.
  • thisがグローバルオブジェクト
  • を指すことを禁止する.
  • は、fn.callerとfn.argmentsを使用して関数呼び出しのスタック
  • を取得できない.
  • は、プロテcted、static、interfaceなどの保留文字を追加しました.