ホームページ >ウェブフロントエンド >jsチュートリアル >ブラウザはどのようにして JavaScript を解析するのでしょうか?分析原理の紹介
ブラウザは JavaScript をどのように解析しますか?この記事では、ブラウザの JavaScript 解析の原理について説明します。必要な方は参考にしていただければ幸いです。 [推奨ビデオ チュートリアル: JavaScript ビデオ チュートリアル]
ブラウザ解析 JavaScript の基本機能:
1. クロスプラットフォーム
2. 弱い型の JavaScript を定義する場合、データ型を定義する必要はありません。
var a = 10; //数字类型 var a = true //boolean类型
(強い型: 変数を定義する場合)。 、変数の型を定義する必要があります。たとえば、Java、C# では int a = 10 boolean a = true はデータ型を直接決定します)
3.一行ずつ
javascript 実行プロセス
#1. 文法検出
基本的な文法があるかどうかを確認します。中国語、キーワード エラーなど...
2. 字句解析 (コンパイル前)
3. 行ごとに実行します。字句解析コンパイル前プロセス (2 つの状況)
1. グローバル
(関数の実行を除く、スクリプト タグ内のコード)次のデモを例に挙げます:
console.log(a); console.log(b) var a = 100; console.log(a) var b = 200 var c = 300 function a(){ } function fun(){ }実行前:1)、最初に GO (グローバル オブジェクト) オブジェクトを生成します。これは目に見えませんが、表示できます。分析のためにシミュレートされる
GO = { //自带的属性都不写 }2)、分析
変数宣言
、変数名は属性名、値は未定義です。GO = { a : undefined, b : undefined, c : undefined }3)、関数宣言を分析します、関数名が属性名、値が関数本体、関数名と変数名が同じ場合は容赦なく上書きされます
GO = { a : function a(){ }, b : undefined, c : undefined, fun : function fun(){ } }このとき、GOは最後のオブジェクトです。プリコンパイルされ、字句解析が完了します。 4)、一行ずつ実行、解析(変数宣言、関数宣言)、気にせず値の代入(変数代入)だけ
a赋了一次值,值改变为100 GO = { a : 100, b : undefined, c : undefined, fun : function fun(){ } }
2
,ローカル (関数の実行時) このデモを例として取り上げます:
num = 100510)1)、プリコンパイル時
GO = { num : undefined, fun : function }2)、実行プロセス
GO = { num : 100, fun : function }3) 関数呼び出しは独自のスコープ (AO: アクティブ オブジェクト) も生成します。関数が呼び出されるとき、実行の直前に AO アクティブ オブジェクトが生成されます。複数の関数を呼び出すと、複数の AOⅰ が生成されます。関数が実行される直前に、AO アクティブ オブジェクト
fun.AO = { }ii が生成されます。パラメータは仮パラメータとして使用されます。変数名がオブジェクトの属性名であり、値が未定義の場合は、実際のパラメータがオブジェクトの属性値として使用されます。 AO オブジェクトに同じ名前のプロパティがある場合は、何も変更しないでください。関数名は属性名であり、値は関数本体です。 AO オブジェクト上で同じ名前の属性が見つかった場合、容赦なく上書きされます (ここには関数宣言がありません。スキップしてください)4) 1 行ずつ実行
例:
例 1:
fun.AO = { num : 5 }例 2:
fun.AO = {
num : 5
}
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !
以上がブラウザはどのようにして JavaScript を解析するのでしょうか?分析原理の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。