zoukankan      html  css  js  c++  java
  • javascript 关于局部变量和全局变量

    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>


  • 相关阅读:
    55.every,filter,forEach,map,some,reduce,slice
    54.get set
    53.一个挺有意思的api(drag)
    52.var,let,const
    iOS18 程序启动过程
    iOS17 加密
    iOS总结2
    iOS16 常用的正则表达式
    iOS15 UIalertController
    iOS14 UIWebView
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7363210.html
Copyright © 2011-2022 走看看