函数全局变量对内部函数的影响

在函数内部定义的全局变量,如果函数没有被调用,那么该全部变量是无效的。

在函数预编译期间,只会对函数的函数名、函数内各种标识符进行检索,建立索引

<script>
        var a=1;
        (function f(){
            alert(a);
            var a=2;
            alert(a);
        })()
</script>

上面函数内部声明了同名变量a,所以在预编译期间,JavaScript就用局部变量覆盖掉了全局变量对函数内部的影响。而在执行期间,局部变量a还没有赋值所以第一个alert的值为undefined,第二个alert,局部变量的值为2.

<script>
        var a=1;
        (function f(){
            alert(a);
        })()
</script>

上面函数内部没有在声明局部同名变量,所以全局变量起作用,alert(l);

猜你喜欢

转载自blog.csdn.net/Lian_Easel/article/details/80372951