第五章 web前端开发工程师--JavaScript高级程序设计 全局变量与函数的解析和执行过程

JavaScript解析与执行过程

 

本节课所讲内容:

  1. JavaScript 全局变量的执行
  2. JavaScript 函数的执行

主讲教师:Head老师

一. JavaScript全局变量的执行

全局预处理阶段执行会首先创建Lexical Environment词法对象,用声明方式创建的函数和用var定义的变量会放在Lexical Environment对象中。

Lexical Environment{

a:undefined

xxx:对函数的引用

}

var a =5;

function xxx(){}               //声明方式创建的函数

var b = function(){}   //函数表达式

 

PS:顶级Lexical Environment对象就是window对象

Javascript执行阶段 先扫描函数声明后扫描变量(var声明) 处理函数声明有冲突,会覆盖,处理声明变量有冲突会忽略。

Alert(a);

Function a(){

Console.log(5);

}

Var a = 5;

二. JavaScript 函数的执行

函数的执行每调用一次,产生一个LexicalEnvironment

Lexical Environment{

a:1

b:2

如果参数没有全部传递则:

a:1

b:undefined

可以使用arguments获取实际传递的参数

}

 

function f(a,b){  

alert(a);      //a会成为函数的引用

alert(b);     //b是2

var b = 100;

function a(){

 

}

}

f(1,2) ;   

ps:处理函数声明有冲突,会覆盖,处理声明变量有冲突会忽略。

PS:给预处理的阶段成员赋值,如果变量没有声明var,会成为最外部LexicalEnvironment的成员

 

猜你喜欢

转载自blog.csdn.net/wgf5845201314/article/details/92073353