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