厳密モード: ECMA-262 仕様によって定義された JavaScript 標準では、JavaScript に対してより強力な制限があります。この記事では主に Javascript の strict モードの use strict について詳しく説明します。必要な友達は参考にしてください。
Strict モード: ECMA-262 仕様で定義された JavaScript 標準には、JavaScript に対する制限が強化されています。
(非厳密モードは「sloppy モード/sparse モード/lazy モード」と呼ばれます。)
1. strict モードの使用
strict モードはスクリプトまたは関数レベルで実装できます。 (つまり、グローバル モードとローカル モード)
1. Global
js ファイルの先頭に「use strict」を追加します
2. Local
次のように関数内に「use strict」を追加します
function fn() { "use strict"; //some code }
2. 厳密モードと非厳密モードの比較
1. 厳密モードでは、変数を削除できません (delete は非修飾識別子です)。非厳密モードでは、削除に失敗すると false"use strict"; var x; delete x;//报错Delete of an unqualified identifier in strict mode.(不合格的标识符)2 が返されます。厳密モードでは、関数パラメータが同じ名前である場合、非厳密モードではエラーがスローされません厳密モード
。
function fn(a,a){ "use strict"; result=a+a; console.log(result); } fn(2,4);//Duplicate parameter name not allowed in this context(重复的参数名称在此上下文中不允许)非厳密モード
function fn1(a,a){ "use strict"; result=a+a; console.log(result); } fn1(2,4);//结果为83. 厳密モードでは、8 進整数リテラルは許可されません (以下に示すように)。非厳密モードではエラーは報告されません。
"use strict" var x=089; console.log(x);//报错:Decimals with leading zeros are not allowed in strict mode.4. 厳密モードでは、引数オブジェクトは渡される関数内の実際のパラメーター リストの静的コピーです (つまり、非厳密モードではパラメーターの変更は追跡されません)。引数オブジェクト内の は、対応する実際のパラメータと同じ値への参照です。 厳密モードの場合
fn(5); function fn(a){ "use strict"; a = 42; // return a==arguments[0];//返回false console.log(a);//结果为42 console.log(arguments[0]);//结果为5,严格模式下arguments[0]表示这个调用方法的第一个参数 (不再追踪 参数的变化,在函数内部,参数a被重新赋值为42,但arguments[0]仍然为5.) }非厳密モードの場合
fn(5); function fn(a){ a = 42; // return a==arguments[0];//返回true console.log(a);//结果为42 console.log(arguments[0]);//结果为42(追踪参数变化) }5. 厳密モードでは、eval と引数はキーワードとして使用され、変数宣言として割り当てて使用することはできません
"use strict"; var eval=3;//报错:Unexpected eval or arguments in strict mode var argument=6;//同样报错6. 厳密モードでは、コールスタックを検出する機能が制限されます。arguments.callee にアクセスすると、arguments.callee.caller は例外をスローします 厳密モードの場合:
"use strict"; function fn(n){ if(n==0){ return 1; }else{ return n*arguments.callee(n-1); } } console.log(fn(5));//报错非厳密モードの場合:
function fn(n){//阶乘 if(n==0){ return 1; }else{ return n*arguments.callee(n-1); } } console.log(fn(5));//正常120caller: 関数が別の関数を呼び出すと、呼び出された関数は、それを呼び出した関数オブジェクトを指す caller 属性を自動的に生成します。関数が現在呼び出されていないか、他の関数によって呼び出されない場合、、caller は null になります。以下の通り: 厳密モードの場合:
"use strict" function fn1() { var n1= fn1.caller; console.log(n1); } function fn2() { fn1(); } fn2();//报错非厳密モードの場合:
function fn1() { var n1= fn1.caller;//此例中caller指向调用它的函数(fn2) console.log(n1); } function fn2() { fn1(); } fn2();// 结果打印出:function fn2(){ fn1( ) };7. 厳密モードの変数は最初に宣言する必要があり、グローバル変数に値を直接代入することはできません。は暗黙的に作成され、 with は使用できません。 厳密モード
"use strict"; with(obj){ x; }//报错:Strict mode code may not include a with statement説明: スクリプトを実行する場合、最初にコンパイルされてから実行されます。明らかに、コンパイル時には、with ステートメント ブロック内の変数がどのオブジェクトに属しているかを判断できません。 [with ステートメント ブロック内の変数は、(cl) の属性、または上位レベルの変数スコープ チェーン内の変数です。 ]。 (c1) が Clothes のインスタンスであるかどうかは、実行時にのみ決定できます。これは、変数がコンパイル時に定義されているかどうかをチェックする厳密モードと競合するため、厳密モードでは with ステートメントは使用されません。 拡張: with ステートメントの使用 (特定のオブジェクト内の既存のプロパティを参照するために使用されますが、オブジェクトにプロパティを追加するために使用することはできません。)
with(object instance) { //代码块 } eg:function Clothes(){ this.color="red"; this.size="m"; this.price="cheap"; } var c1=new Clothes(); with(c1){ var str="颜色:"+color+",尺寸:"+size+",价格:"+price; document.write(str); }//结果(颜色:red,尺寸:m,价格:cheap)
strict モードでは、null 未定義の apply パスを呼び出し、そのままウィンドウに変換
以上がJavascript チュートリアルの strict strict モードの使い方の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい
