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 }
原文地址:https://www.cnblogs.com/m-xy/p/3457504.html