js会提前对声明的部分做完整的分析,之后再按顺序执行代码。
- 例一
var a= 100;
function asd(){
alert(a);
}
asd();
结果:
100
- 例二
var a= 100;
function asd(){
alert(a);
var a=123;
alert(a);
}
asd();
结果:
undefined 123
例题说明:在js对声明部分进行分析时,对var a= 123;
这行代码的声明部分进行分析,判定asd()函数中有局部变量被声明,所以没有显示第一行声明的全局变量的值。
var a= 123;
等价于:
var a;//这句代码被提前分析
a= 123;这句代码没有执行
所以输出的只会等于undefined,而不是123;第二次输出才会等于123;
·
·
·
注意:在函数中声明变量,使用var关键字声明的是局部变量,没有用的是全局变量。