《2018年9月17日》【连续349天】
标题:js预编译;
内容:
// js执行步骤:
//语法分析
//预编译
//解释执行
// 预编译:
// 函数声明整体提升
// 变量 声明提升
test();
function test()
{
console.log('a');
}
console.log("a="+a);
var a=123; //预编译让声明提升,但未让赋值提升;
// imply gloal:未声明,直接赋值,暗示全局,归全局变量所有;
b=10;
console.log("b="+window.b);
var c =456;
console.log("c="+window.c);
//window就是全局的域;
function demo()
{
var d = e = 98;
}
demo();
console.log("d="+window.d);
console.log("e="+window.e);
//预编译发生在函数执行的前一刻
// 1.创建AO对象(Activation Object)(执行期上下文)
// 2.找形参和变量声明,将形参和变量名作为AO属性名,值为undefined
// 3.将实参值和形参统一
// 4.在函数体里面找函数声明,值赋予函数体
//对于全局有GO对象