JavaScriptプリコンパイル
5678 ワード
記事の目次プリコンパイル4ステップ 例解析 注意 プリコンパイル4ステップ
関数のプリコンパイル: AO活動対象(Active Object)を作成します. 形参と変数宣言を探して、変数と形参名をAO属性名として、値はundefined です.実パラメータ値は、形参(関数) に割り当てられる.関数宣言を見つけました.値は関数 に与えられます.
グローバル類似で作成されたオブジェクトはGOグローバルオブジェクト(Global Object)であり、windowオブジェクトです.
実例分析四段階における関数宣言は、変数が上昇した後、付加価値関数がundefined をカバーする.関数宣言と関数表現は異なり、関数式、すなわち変数宣言の割り当て値undefined に参加しない.
関数のプリコンパイル:
グローバル類似で作成されたオブジェクトはGOグローバルオブジェクト(Global Object)であり、windowオブジェクトです.
実例分析
function f(a){
console.log(a);
var a = 123;
console.log(a);
function a() {}
console.log(a);
console.log(b);
var b = function () {};
console.log(b);
}
f(1);
プロセス分析1. AO
2.
a --> undefined
b --> undefined
3.
a --> 1
(b --> undefined)
4. ,
a --> function a()
(b --> undefined) ** ,b **
出力結果
function a()
// 123
123
123
undefined
function b()
注意if
における関数宣言は、プリコンパイル console.log(a);
if(1){
function a(){}
}
console.log(a); function a()
if
のステートメントを実行した後だけ、値が与えられます.