javascript学习笔记(6) 函数递归/作用域/预编译

1.简单的递归案例

2.作用域/预编译

互相嵌套的函数,外层函数不能访问里层函数的变量,里层函数可以访问外层函数的变量,即越往里层,权限越高;

全局变量(imply global),window就是全局的域

未经声明就赋值,此变量为全局对象所有;一切全局变量.都是window属性

a = 10;  --> window.a = 10;

var a = 123;   console.log(a);  --> console.log(window.a);

 

Js运行三部曲:通篇扫描,分析语法是否有误;预编译;解释执行

预编译:

函数声明整体提升(函数整体提升到逻辑最前面);变量声明提升(赋值未提升);

预编译过程:

函数域编译过程(预编译发生在函数执行的前一刻)

第一步:创建AO(activation object):

第二步:找形参和变量声明,将变量和形参名作AO属性名,值为undefined;

第三步:将实参和形参统一;

第四步:在函数体里找函数声明,值赋予函数体;

 

全局预编译过程

第一步:生成一个GO对象(global object),

GO == window

 

 

发布了47 篇原创文章 · 获赞 1 · 访问量 3728

猜你喜欢

转载自blog.csdn.net/pdd51testing/article/details/104783406