js-var变量作用域
看代码:
1 var a=10; 2 function fn1(){ 3 alert(a); 4 var a=20; 5 alert(a); 6 }
运行结果:undefined 和 20
注意:
1 在函数内,变量如没用var,则为全局变量。 2 在函数中声明的变量,无论是在哪里声明的,在整个函数中都是有定义的,如: 3 var a=10; 4 function a(){ 5 alert(a); //此处a的值并不是10,它并不是全局变量,因为后面又重新用var声明了a,所以此时a已经是函数的私有变量了,所以说即使是在后面才声明的var a=20,但它在整个函数中都是有定义的,只不过在执行var 语句之前它的值是undefined,所以此时a的值为undefined。 6 var a=20; 7 alert(a); 8 }