JavaScript——预编译
javascript的两大特点:
1、单线程
2、解释性语言
js运行三部曲
1、语法分析
2、预编译
3、解释执行
预编译前奏
1、暗示全局变量:
即任何变量:如果变量未经声明就赋值,此变量就为全局对象所有。
eg: a = 123;
eg: var a = b = 123;
2、一切声明的全局变量,全是window的属性。
eg: var a = 123; ====> window.a = 123;
预编译四部曲
1、创建AO对象(Activation Object,执行期上下文)。
2、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined。
3、将实参值和形参统一。
4、在函数体里面找函数声明,值赋予函数体。
注:if语句里不能定义函数。
未经声明的变量唯一放在typeof()里不会报错。