学习 javascript 时,有必要了解 JS 的局部变量和全局变量到底有什么区别,下面17JAVASCRIPT跟大家详细说明一下。
js中函数执行过程不只是单纯的局部变量覆盖全局变量,和函数里面的声明情况有关。比如:
<script>
var a =1;
function test(){
alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体倒数第4行)一个重名的局部变量,
//所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前,
//函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。
a=4
alert(a); //a为4,没悬念了吧? 这里的a还是局部变量哦!
var a; //局部变量a在这行声明
alert(a); //a还是为4,这是因为之前已把4赋给a了
}
test();
alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值
< /script>
javascript 局部变量全局变量详解
最新推荐文章于 2022-07-19 22:04:32 发布