Day 27 递归 作用域 预编译过程 预编译练习

十、递归  作用域 

1、递归 :找规律  找出口

2、作用域

(1)定义:变量(变量作用于又称上下文)和函数生效(能被访问)的区域

里层可以访问外层,外层不可访问内层

(2)全局、局部变量

(3)作用域的访问顺序

 十一、预编译  

 (js三部曲:语法分析---预编译---解释执行)

 1、语法分析:通篇扫描,不执行

 2、预编译前知识:

 (1)imply global 暗示全局变量:即任何变量未经声明就赋值,此变量就为全局对象所有。

a = 10;

window.a =10;

(2)一切声明的全局变量,全是window的属性。

var b = 234;

相当于:

window {

  a : 123;

}

window就是全局  console.log(a);---console.log(window.a)

3、预编译

(1)函数声明整体提升:函数可以自动提到逻辑最前面

变量  声明提升: 仅仅可以将声明提到前面,不能改变赋值

(2)预编译发生在函数执行前

过程:

   a.创建AO对象  activation object (执行期上下文)

   AO{   }

   b.找形参和变量声明,将形参和变量声明的名作为AO的属性名,值是undefined

   c.将实参和形参值统一

   d.在函数体里面找函数声明,值赋予函数体(值是函数体)  把函数声明的名作为AO的属性名

--------------

全局的预编译过程:

a.生成一个GO对象 global object   GO===window

GO{   }

b.找形参和变量声明,将形参和变量声明的名作为AO的属性名,值是undefined

c.在函数体里面找函数声明,值赋予函数体(值是函数体)  把函数声明的名作为AO的属性名

--------------

 3、解释执行:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值