JS的解析与执行过程
2017-10-23 20:25
281 查看
1.全局预处理阶段 :
1.1:处理函数声明有冲突 会覆盖
1.2:处理变量声明时有冲突,会忽略
这两句话下面的列题做了解释
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//预处理阶段
alert(fn); //这里拿到的是第二个函数
alert(a); //a是undefined
alert(b); //b会直接报错
b=6;
function fn() {
console.log(1);
}
var fn=function(){}
function fn() {
console.log(2);
}
var a=function(){//不管这个a怎么声明都会是undefined
console.log(3);
}
var a=1;
//执行阶段
alert(a);// 1
alert(b);// 6
//总结:先扫描函数声明后扫描变量(var声明)
</script>
</body>
</html>
2.函数阶段
<script type="text/javascript">
function fn(a,b,a){
alert(arguments[0]);
alert(arguments[1]);
alert(arguments[2]);
//alert(arguments[0]) <-> a = 1;//建立引用
//alert(arguments[1]) <-> b = 2;
//alert(arguments[2]) <-> a = 3;有一次建立引用会把第一次a的引用重定向
//alert(arguments[2]) <-> a = function(){}覆盖了;
function a(){
console.log(i);
}
}
fn(1,2,3);
</script>
1.1:处理函数声明有冲突 会覆盖
1.2:处理变量声明时有冲突,会忽略
这两句话下面的列题做了解释
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//预处理阶段
alert(fn); //这里拿到的是第二个函数
alert(a); //a是undefined
alert(b); //b会直接报错
b=6;
function fn() {
console.log(1);
}
var fn=function(){}
function fn() {
console.log(2);
}
var a=function(){//不管这个a怎么声明都会是undefined
console.log(3);
}
var a=1;
//执行阶段
alert(a);// 1
alert(b);// 6
//总结:先扫描函数声明后扫描变量(var声明)
</script>
</body>
</html>
2.函数阶段
<script type="text/javascript">
function fn(a,b,a){
alert(arguments[0]);
alert(arguments[1]);
alert(arguments[2]);
//alert(arguments[0]) <-> a = 1;//建立引用
//alert(arguments[1]) <-> b = 2;
//alert(arguments[2]) <-> a = 3;有一次建立引用会把第一次a的引用重定向
//alert(arguments[2]) <-> a = function(){}覆盖了;
function a(){
console.log(i);
}
}
fn(1,2,3);
</script>
相关文章推荐
- js预编译解析执行过程分析
- js的解析和执行过程
- JS的预解析与执行过程详解
- JS的解析与执行过程
- JS 的解析与执行过程
- js的解析与执行过程
- 认识DOM和DOM加载过程以及如何让DOM加载完成后再执行js脚本文件
- 避免硬解析 的 SQL 执行过程
- 第10周-任务0-构造和析构函数的执行过程实例解析
- spring mvc框架整个执行过程,从输入http url,到action映射,再到action处理,返回jsp文件,解析jsp文件,然后渲染, 到返回给浏览器展示结果
- 浏览器命令行交互下js的执行过程
- js 解析过程
- 一个SQL语句的执行过程及解析
- (五) u-boot 命令执行过程解析与添加自定义命令
- HTML,javascript,image等加载,DOM解析,js执行生命周期
- Spring基本执行过程解析
- PHP是如何执行代码解析过程的
- 第10周-任务0-构造和析构函数的执行过程实例解析
- js 的执行过程
- WebKit之js解析和执行初始