JS-1-解析与执行
来源:互联网 发布:如何查看淘宝降权 编辑:程序博客网 时间:2024/06/03 20:41
js执行会分为2段,第一段是预处理阶段,在window中,第二阶段是执行阶段,赋值
一、js全局预处理阶段,会加载:
1、用声明的方式创建函数
2、用var定义的变量
举例:
f();
g();
var g = function(){} //函数表达式 报错
function f(){} //声明的方式
console.log(a);
console.log(b);
var a =5;
b=6; //报错
二、js全局预处理阶段策略
1、处理函数声明有冲突,会覆盖
2、处理变量声明有冲突,会忽略
举例:
alert(f);
function f(){
console.log(‘111’)
}
var f = 5; //忽略
function f(){ //覆盖
cosole.log('222');
}
三、js全局执行阶段
alert(a); //undefined
//alert(b); //报错
alert(f); //function f()...
alert(g);//undefined
var a = 5;
b =6;
alert(b);
function f(){
console.log('f')
}
var g = function(){
console.log('g');
}
alert(g);
预处理阶段
window{
f:指向函数
a:undefined
g:undefined
}
执行阶段
window{
f:指向函数
a:5
b:6
g:指向函数
}
四、函数预处理阶段
预处理阶段:a.每调用一次,产生一个LexicalEnvironment
b.先函数的参数
c.内部声明式函数
d.内部var变量
e.冲突情况与全局处理一样
举例
function f(a,b){
alert(a)
alert(b);
var b = 100l
function a(){
}
}
f(1, 2);
//加载
lexical env{
a:1
b:2 //如果只传了一个参数 则b为undefind
arguments:
}
//处理函数内部
lexical env{
a:1 //覆盖 指向函数的引用
b:2 //忽略
arguments:
}
执行阶段:
a.给预处理阶段的成员赋值
b.如果没有用var声明的变量,会成为最外部LexicalEnvironment的成员
- JS-1-解析与执行
- js加载与执行机制解析
- js的解析与执行过程
- JS 的解析与执行过程
- Js的全局预处理、解析与执行
- JS的解析与执行过程
- JS脚本解析与执行顺序
- 去年的webkit的js解析与执行
- JS的解析与执行——全局预处理
- JS的解析与执行——全局预处理命名冲突解决策略与执行
- JS的解析与执行——函数预处理与执行
- js异步加载与执行1
- JS----执行与装载
- JavaScript的解析与执行
- 关于js解析执行有趣的事
- js预编译解析执行过程分析
- WebKit之js解析和执行初始
- js的解析和执行过程
- 项目的开发模式
- poj 1830 开关问题
- Go编程基础—方法(method)
- nginx基础配置篇
- C面向对象-构建对象
- JS-1-解析与执行
- Codevs 1021 玛丽卡
- arp脚本
- java的包Package中同名类的冲突及其理解
- ARM驱动之流水灯
- windows系统numpy的下载与安装教程
- 深入正则表达式应用
- 华为机试:简单密码破解、字符串通配符
- 【Linux】正则表达式