zoukankan      html  css  js  c++  java
  • 基于JavaScript 声明全局变量的三种方式详解

    声明方式一:

    使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。该方式即为显式声明详细如下:

    <script> 
      var test = 5;//全局变量 
      function a(){ 
        var a = 3;//局部变量 
        alert(a); 
      } 
      function b(){ 
        alert(test); 
      } 
      //a();//调用a方法,那么方法里面的内容才会执行 
      //b();//同上 
    </script> 

    声明方式二:

    没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。

    <script> 
        test = 5;//全局变量 
        function a(){ 
          aa = 3;//也是全局变量 
          alert(test); 
        } 
        //a();  //输出5 
        //alert(aa);//这里也可以方法a()方法里面的变量,因为aa是全局变量 
      </script> 

    声明方式三:

    使用window全局对象来声明,全局对象的属性对应也是全局变量,详细如下:

    <script> 
      window.test = 50; 
      alert(test);//输出50 
    </script> 

    这种方式经常被用到一个匿名函数执行后将一些函数公开到全局。 如JQuery1.5中最末一句
    代码如下:

    window.jQuery = window.$ = jQuery;

    全局变量的优点:

    可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。

    全局变量的缺点:

    (1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。

    (2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。

    (3)全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。
    因此,如果不是万不得已,最好不要使用全局变量。

  • 相关阅读:
    You are not late! You are not early!
    在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书
    Vue.js Is Good, but Is It Better Than Angular or React?
    It was not possible to find any compatible framework version
    VS增加插件 Supercharger破解教程
    Git使用ssh key
    Disconnected: No supported authentication methods available (server sent: publickey)
    VS 2013打开.edmx文件时报类型转换异常
    asp.net MVC4 框架揭秘 读书笔记系列3
    asp.net MVC4 框架揭秘 读书笔记系列2
  • 原文地址:https://www.cnblogs.com/alsf/p/6508868.html
Copyright © 2011-2022 走看看