预编译
来源:互联网 发布:富人国 知乎 编辑:程序博客网 时间:2024/05/22 13:03
1.js运行三部曲
- 语法分析
- 预编译(发生在函数执行的前一刻)
- 解释执行
预编译前奏
//函数声明整体提升
//变量 声明提升
1.imply global 暗示全局变量:即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有
eg: a = 123;eg: var a = b = 123;
2.一切声明的全局变量,全是window的属性
eg: var a = 123; ==> window.a = 123;
预编译四部曲:
1.创建AO对象
2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
3.将实参值和形参统一
4.在函数体里面找函数声明,值赋予函数体
function fn(a){ console.log(a);//function a(){} var a = 123; console.log(a);//123 function a(){} console.log(a);//123 var b = function(){} console.log(b);//function(){} function d(){}}fn(1);1.创建AO Activation Object(执行期上下文)AO{ a:123, b:function(){}, d:function d(){}}
全局生成了一个GO对象Global Object
var a = 123;function a(){}console.log(a);//123GO ===window{ a:123}
阅读全文
0 0
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 预编译
- 文章标题
- VS2015+MATLAB2016b混合编程
- CentOS系统下的Hadoop集群(第3期)_VSFTP安装配置
- jdk配tomcat与oracle
- 【ACM/ICPC训练】修理牧场
- 预编译
- JavaScript高级程序设计(第3版)笔记(五)
- 梯度下降 — Gradient Descent
- Eclipse中有用的快捷键组合
- spring常见错误记录
- java环境变量配置详解(综合整理网络上的资源)
- 什么是架构师? 如何成为一个架构师?
- ACM训练周末总结—12月3日
- VS2015环境下,显示strcpy()函数出错的解决办法