原理
js是动态语言,即解释性语言,js代码是自上而下执行的,但是在js代码执行前,首先进行词法分析,
js执行分为两个阶段
-
词法解析
-
代码执行
词法解析
- 分析参数
- 分析变量的申明
- 分析函数的申明
举例
var a = 10;
(function () {
console.log(a);
a = 5;
console.log(this.a);
console.log(a)
})
输出结果
undefinded;//变量提升申明 var a = undefined
10// this指向问题指向的是全局对象,window
5