ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptで厳密モードを使用するにはどうすればよいですか?使用例
JavaScript で厳密モードを使用するにはどうすればよいですか?この記事では、JavaScript の厳密モードとは何を意味するのかについて簡単に説明します。使い方?困っている友人は参考にしていただければ幸いです。
厳密モードとはどういう意味ですか?用途は何ですか?
Strict モードは ECMAScript 5 の新機能で、プログラムまたは関数を「厳密な」動作コンテキストに置くことができます。この厳密なコンテキストにより、特定のアクションが実行され、さらなる例外が発生することが防止されます。
「use strict」を宣言して、ブラウザに単純化された安全な JavaScript 機能セットである strict モードを使用するように指示する必要があります。
厳密モードを使用する利点: 通常の JavaScript セマンティクスにいくつかの変更が加えられます。
1. Strict モードは、エラーをスローするように変更することで、一部の JavaScript サイレント エラーを排除します。
2. 厳密モードでは、JavaScript エンジンによる最適化の実行を困難にするバグが修正されます。厳密モードのコードは、非厳密モードの同じコードよりも高速に実行される場合があります。
3. 厳密モードでは、ECMAScript の将来のバージョンで特定の構文の定義が禁止されます。
4. 比較的「安全でない」操作 (グローバル オブジェクトへのアクセス取得など) を実行すると、ブロックまたはエラーがスローされます。
5. わかりにくい機能やよく考えられていない機能を無効にします。
6. Strict モードを使用すると、「安全な」JavaScript コードを簡単に作成できます。
厳密モードの使用方法?
厳密モードは 2 つの方法で使用できます。スクリプト全体にわたってグローバルに使用する方法、または単一の関数に適用する方法です。
注: Strict モードは、{} 括弧内のブロック ステートメントには適用されません。
スクリプト全体のグローバル スコープで
を使用して strict モードを呼び出すには、正確なステートメント 'use strict' (または他のステートメントの前に 'use strict') を入力します。ステートメント ';)。
//全脚本严格模式语法 "use strict"; var v ="严格模式脚本!";
注: この構文には流れがあります。競合しないスクリプトを盲目的に接続することはできません。厳密モードのスクリプトと非厳密モードのスクリプトを連結することを検討してください。連結全体が厳密に見えます。逆も当てはまります。非厳密と厳密を加算すると、非厳密に見えます。厳密モードのスクリプトは相互に適切に接続し、非厳密モードのスクリプトは相互に適切に接続します。厳密なスクリプトと非厳密なスクリプトを接続するだけでは問題があります。したがって、(少なくとも移行期間中は) 機能ごとに厳密モードを有効にすることをお勧めします。
関数呼び出しに strict モードを使用する
関数で strict モードを呼び出すには、同様に、他のステートメントよりも前に、関数本体で厳密なステートメントを "use" に設定します。 "; (または '厳密を使用';)。
function strict(){ //功能级严格模式语法 "use strict"; function nested(){ return '在Javascript中'; } return "严格模式函数!"+ nested(); } function notStrict(){ return "非严格模式"; }
厳密モードの使用例:
1. 通常の JavaScript では、変数名を誤って入力すると、新しいグローバル変数が作成されます。厳密モードではエラーが発生するため、誤ってグローバル変数
2を作成することができなくなります。厳密モードでは、変数を宣言せずに変数を使用することはできません。厳密モードを使用すると、宣言せずにオブジェクトを使用することはできません:
//不允许使用变量而不声明它: "use strict"; x = 3.14; //这会导致错误
4。変数 (またはオブジェクト) や関数を削除することも、関数を削除することもできません
//不允许使用对象而不声明它: "use strict" x = {p1:10,p2:20}; //这会导致错误
"use strict"; //不允许删除变量(或对象)和函数 var x = 3.14; delete x; //这会导致错误 //也不允许删除功能 function x(p1,p2){}; delete x; //这会导致错误
6、8 進数リテラルは許可されません
“严格使用”; 函数x(p1,p1){}; //这会导致错误
7、エスケープ文字は許可されません
"use strict"; var x = 010; //这会导致错误
8、読み取り専用属性
"use strict"; var x = \ 010; //这会导致错误
9 への書き込みは許可されません。取得専用属性
"use strict"; var obj = {}; Object.defineProperty(obj,“x”,{ value:0,writable:false }); obj.x = 3.14; //这会导致错误
10 への書き込みは許可されません。
"use strict"; var obj = { get x(){return 0} }; obj.x = 3.14; //这会导致错误11. 文字列「eval」は変数として使用できません
"use strict"; delete Object.prototype; //这会导致错误12. 文字列「arguments」は変数として使用できません
"use strict"; var eval = 3.14; //这会导致错误13. not allowed
"use strict"; var arguments = 3.14; //这会导致错误14. セキュリティ上の理由から、eval() が呼び出し範囲内で変数を作成することは許可されていません。
"use strict"; with(Math){ x = cos(2) }; //这会导致错误要約: 上記がこの記事の全内容です。みんなの学習に役立つことを願っています。関連するビデオ チュートリアルの詳細については、
JavaScriptTutorial
をご覧ください。以上がJavaScriptで厳密モードを使用するにはどうすればよいですか?使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。