JS解析と実行過程
1648 ワード
問題
他のプログラミング言語では、先に声明してから使用しなければならないと規定されています.
JS解析と実行過程は2つの部分に分かれています.
グローバルJSコードの実行は2段階(JSは最初から次の2段階)に分けられます.
関数
関数体内のJSコードの実行は、2段階(関数コールの場合は、以下の2段階)に分けられます.、1つのvar変数名が1つの関数名と同じであれば、関数優先 もし1つのvar変数名が他のvar変数名と同じであれば、最初を基準とする 関数内のパラメータ名が関数名と同じであれば、関数として好ましい 関数内のパラメータ名が1つのvar変数と同じ名前であれば、パラメータが最初ですので、パラメータ優先
他のプログラミング言語では、先に声明してから使用しなければならないと規定されています.
var a = 10; //
alert(a); //
しかし、JSでは、次のように発見されました.alert(a); //
fn(); // fn
var a = 10; //
function fn(){}
なぜ先に後の声明を使ってもいいですか? JS ** **
カテゴリJS解析と実行過程は2つの部分に分かれています.
1、 (JS )
2、 ( )
全体グローバルJSコードの実行は2段階(JSは最初から次の2段階)に分けられます.
1.
2.
前処理は主に以下の2つのコードを処理します.1、
2、 var
######################
alert(a); //undefined
fn();
alert(b); // ,b
var a = 10;
b = 123;
function fn(){}
######################
function fn(){}
var a;
alert(a); //undefined
fn();
alert(b); // ,b
a = 10;
b = 123;
上から見れば、なぜJSが声明の前に呼び出されたのか、もう一つ重要なことは、前処理の処理手順:先に関数を処理してからvar変数を処理することです.関数
関数体内のJSコードの実行は、2段階(関数コールの場合は、以下の2段階)に分けられます.
1.
2.
前処理は主に以下の3つのコードを処理します.1、
2、
3、 var
関数内の前処理の手順:まず関数パラメータを処理して、関数に行って、最後にvar変数を処理します.######################
function go(a, b){
alert(a)
test();
var aa = 10;
function test(){}
}
go(1, true)
######################
function go(a, b){
function test(){}
var aa;
alert(aa) // undefined
alert(a) // 1
test();
aa = 10;
}
go(1, true)
名前の衝突