プリコンパイル済み
プリコンパイルされたプロセスは、関数の実行の直前に発生しました
プリコンパイル済みtetralogy
1、AOは、オブジェクトの作成
2、およびパラメータ変数の宣言、変数パラメータ名とオブジェクトAOとしてプロパティ名を見つけ、未定義である;
3、仮パラメータと実パラメータ結束
機能本体関数宣言を見つける4 、関数の値が付与部材
JavaScriptの教育ビデオ交差からマイルマイルビープビープ
https://www.bilibili.com/video/av64563473?p=11を
52ポイントのルックスから
// 预编译过程发生在函数执行的前一刻
// 编译四部曲
// 1,创建AO对象
// 2,找形参和变量声明,将变量和形参名作为AO对象的属性名, 值为undefined;
// 3,将形参和实参相统一
// 4,在函数体里面找函数声明,值赋予函数体
function test(a) {
console.log(a);
var a = 123;
console.log(a);
function a() {};
console.log(a);
var b = function () {};
console.log(b);
function d() {};
}
test(10);
出力
一般的に単純なプロセス(書き込みは非常に簡単には)ビデオを見てお勧めします