JS的解析与执行——函数预处理与执行
来源:互联网 发布:不支持后端数据库设计 编辑:程序博客网 时间:2024/06/03 13:30
JS中对函数解析与执行也是分为两个阶段,也是分为预处理阶段与执行阶段。函数的预处理阶段,每调用一次,产生一个Lexical Environment。与全局预处理不同的是,在函数中产生中的词法环境对象我们访问不了的。需要注意的一点是,函数的参数,在调用的时候已经加入到全局词法环境(Lexical Environment)对象中。函数预处理的内部声明式函数,内部var声明的变量以及解决冲突的策略与全局预处理相同。
代码如下:
<!doctype html><html><head><meta charset="utf-8"><title>函数与处理与执行</title></head><body><script>function foo(a,b) { console.log(a); console.log(b); var b =100; function a(){ console.log("function.a"); } }foo(5,6);</script></body></html>
预处理阶段
Lexical Environment{
a:执行函数的引用 //a:5,冲突,被覆盖
b:6 //var b=100,冲突,被忽略
arguments:2
}
在执行阶段会给预处理阶段的成员赋值。
在执行阶段,如果没有用var声明的变量,会成为最外部Lexical Environment的成员。
代码如下:
<!doctype html><html><head><meta charset="utf-8"><title>函数与处理与执行</title></head><body><script>function f1(){ function f2(){ bb="在执行阶段,如果没有用var声明的变量,会成为最外部Lexical Environment的成员";};f2();}f1();console.log(window.bb);</script></body></html>
阅读全文
0 0
- JS的解析与执行——函数预处理与执行
- JS的解析与执行——全局预处理
- Js的全局预处理、解析与执行
- JS的解析与执行——全局预处理命名冲突解决策略与执行
- 2.函数预处理与执行
- js的解析与执行过程
- JS 的解析与执行过程
- JS的解析与执行过程
- JS-1-解析与执行
- JS函数的赋值与执行
- 1.全局预处理与执行
- 去年的webkit的js解析与执行
- JavaScript的解析与执行
- js加载与执行机制解析
- JS脚本解析与执行顺序
- 一些关于函数与变量的预处理和执行的事
- php源代码解析:引用与函数执行
- js立即执行函数: (function ( ){})( ) 与 (function ( ){}( ))
- 2017 Google 开发者大会全记录
- MySQL必知必会
- cglib初步使用代理
- Linux useradd 和 adduser 的区别
- Android中级篇之Fresco-加载图片基础[详细图解Fresco的使用]
- JS的解析与执行——函数预处理与执行
- 虚拟机上网设置
- SocketChannel_NIO_编程_聊天Demo
- TypeScript学习笔记一
- final 和static final 变量的引用不变
- Capstone日志2017-12-13
- python3 关于文件的操作
- [HDU P2089]不要62
- 增量更新