javaScript 全局变量注意

摘要:
b、 可以删除未使用var创建的隐式全局变量。例如:varglobal_var=1;全局_ novar=2;deleteglobal_var;//false deleteglobal_novar;//真删除全局函数;//真警报;//数字警报;//未定义的警报;//未定义;4.单var形式在函数顶部使用单var语句是一种相对常见的形式。它的优点是:a.它提供了一个单一的位置来查找函数所需的所有局部变量。对于javasript,只要您的变量在同一范围内,它们就被视为已声明的,即使它们在var声明之前使用。

1.注意隐式全局变量

  function sum(a,b)

  {

    result=a+b;

    return result;

  }

上面虽然返回结果但是多了一个全局变量命名空间。

最好使用var 来声明变量

function sum(a,b)

{

   var result=a+b;

  return result;

}

2.注意创建隐式全部变量的反例

  function foo(){

    var a=b=0;

  }

  a是局部变量但是b 是全局变量,造成这现象的原因是因为从右到左的服务,首先b=0;b情况不明,所以声明为全局变量,然后var a=b,b返回值为0 赋给了a;

  就好比:a=(b=0);

  所以避免b为全局变量

  function foo(){

    var a,b;

    a=b=0;

}

3.注意隐式全局变量和明确定义的全局变量有些小差异,就是通过的delete操作符让变量未定义的能力

  a.通过var创建的全局变量(任何函数之外的程序创建)是不能删除。

  b.无var创建的隐式全局变量(无视是否在函数中创建)是能被删除。

  例如:

      var global_var=1;

        global_novar=2;

      (function(){

        global_funcation=3;

      });

    delete global_var;  //false

    delete global_novar;//true

    delete global_funcation;//true

    alert(typeof global_var); //number

    alert(typeof global_novar);//undefined

    alert(typeof global_funcation); //undefined;

 4.单var形式

  在函数顶部使用单var语句是比较有的一种形式,其好处在于:

    a.提供了一个单一的地方去寻找功能所需要的所有局部变量。

    b.防止变量在定义之前使用的逻辑错误

    c.帮助你记住声明的全局变量,因此较少了全局变量

    d.少代码

  例如 :

    fucntion fun(){

      var a=1,

        b=2,

        sum=a+b;

        myobject={},

        i,

        j,

        global=window; 

      }

 你可以使用一个var语句声明多个变量,并以逗号分隔。像这种初始化变量同时初始化的做法是很好的。则样可以防止逻辑错误(所有未初始化但声明的变量的初始值是undefined)和增加代码的可读性。

5. var预解析

  javasript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这中行为称为:hoisting(预解析)。当你使用一个变量,然后不久在函数中又重新声明的话,就可能产生逻辑错误。对于javasript,只要你的变量是在同一个作用域中(同一个函数),它都被当做是声明的,即使是它在var声明前使用的时候。

例如:

    var myname="global";

    function fun(){

      alert(myname);

      var myname="text";

      alert(myname);

  }

  结果为: undefiend, text;

  出现这样结果是因为myname被当做函数的局部变量(尽管是之后声明的),所有的变量声明当被悬置到函数的顶部了,因此,为了避免这中混乱,最好是预先声明你想使用的全部变量。

  上面代码相同于

  var myname="global";

  function fun(){

    var myname;

    alert(myname);

    myname="text";

    alert(myname);

  }

  

 }

免责声明:文章转载自《javaScript 全局变量注意》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇《Zuul网关》之GETPOSTPUT请求报文重组并支持multipart/form-data【性能测试】:分析cpu高,内存gc,数据库io高等问题的记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

XSS的高级利用部分总结 -蠕虫

XSS的高级利用部分总结 -蠕虫,HTTP-only,AJAX本地文件操作,镜象网页本帖最后由 racle 于 2009-5-30 09:19 编辑 XSS的高级利用总结 -蠕虫,HTTPONLY,AJAX本地文件操作,镜象网页By racle@tian6.com http://bbs.tian6.com/thread-12711-1-1.html转帖请保...

iOS开发-OC语言 (一)oc数据类型

分享一套以前学习iOS开发时学习整理的资料,后面整套持续更新: oc数据类型 数据类型:基本数据类型、指针数据类型 基本数据类型:数值型、字符型(char)、布尔型、空类型(void) 指针数据类型:类(class)、id 数值型:整数类型int、浮点型float、double c和oc的基本数据类型 int:声明整型变量 double:声明双精度变量 f...

c语言进阶6-指针

指针是c语言的一个重要组成部分 是c语言的核心、精髓所在,用好指针可以在c语言编程中起到事半功倍的效果。一方面,可以提高程序的编译效率和执行速度以及实现动态的存储分配;另一方面,使用指针可使程序更灵活,全球表示各种数据结构,编写高质量的程序。 指针是c语言显著的优点之一,其使用起来十分灵活而且能提高某些程序的效率,但是如果使用不当则很容易造成系统错误。许多...

echarts折线图 鼠标移入改变小点显示样式

tooltip:{ trigger:'axis', formatter:function(a){ var res = ''; var nameList =a; for(var i=0; i<a.length; i++){ if(name...

【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】

方法1:【通用方法】使用Tab键上面的反引号 例子如下: find命令模糊查询在/apps/swapping目录下查找文件名中包含swapping并且以.jar结尾的文件 使用反引号引住命令,然后使用变量接收 var=` find /apps/swapping -name '*swapping*.jar' ` 打印变量结果 echo $var 方法2:使...

cesium 中地图发生了平移,放缩,旋转等动作所要执行的动作

1、在canvas上得到鼠标点击的是那个键 <html><head><title>js判断鼠标左、中、右键哪个被点击-柯乐义</title><script type="text/javascript">function whichButton(event){var btnNum = event.b...