Js预编译

来自CloudWiki
跳转至: 导航搜索

作用域: 全局作用域:最外层定义的变量 局部作用域:只在固定的代码片段内可用,函数外出不可访问 js没有块级作用域,局部作用域是由函数的产生而产生的,也叫函数作用域。 注意:建议使用var声明变量,如果没有var声明,那么在函数内也是声明了全局变量。 块级作用域:{} js执行环境 全局执行环境:最外面层的执行环境--->window 因此所有的全局变量和函数都作用为window的属性和方法。GO 局部执行环境:函数内的执行环境--->AO js三部曲 1.语法检查 2.预编译 3.逐行解释执行 预编译: 1.创建AO对象(active object this,arguments) 2.在函数内找用var定义的变量及形参变量,并且赋值为undefined 3.形参和实参相统一 4.找函数内用function定义的函数,并将函数体赋值。 作用域链: 当一个函数被调用的时候,创建了执行环境和相应的作用域链,并且把作用域链赋值给一个特殊的内部属性scope,然后用this,arguments(全局不存在), 和其他的命名参数来初始化活动对象,当前的执行环境始终在作用域链的最顶端 scope中所存储的执行期上下文的集合,这个集合呈链式结构,我们把这种链式叫做作用域链。也是作用域对象的集合。