一、预解析
javascript 在执行前会进行类似“预解析”的操作:首先会创建一个在当前执行环境下的活动对象, 并将那些用 var 声明的变量、定义的函数设置为活动对象的属性, 但是此时这些变量的赋值都是 undefined
二、解释执行
在javascript解释执行阶段, 遇到变量需要解析时, 会首先从当前执行环境的活动对象中查找, 如果没有找到, 而且该执行环境的拥有者有 prototype 属性时则会从 prototype 链中查找, 否则将会按照作用域链查找, 遇到var a = …这样的语句时会给相应的变量进行赋值(注意:变量的赋值是在解释执行阶段完成的, 如果在这之前使用变量, 它的值会是undefined)
时间: 2024-10-09 07:57:45