《编写高质量代码--改善JavaScript程序的188个建议》学习记录(一)

js优化攻略(一):减少全局变量污染
  js中的全局变量的定义就是在所有作用域中都可见的变量,它的定义方法有三种:
  (1)在任何函数外面直接执行var语句
     eg:var f = 'value';
  (2)直接添加一个属性到全局对象中,全局对象就是所有全局对象的容器,在web浏览器中,全局对象是window
     eg: window.f = 'value';
  (3)直接使用未经声明的变量,以这种方式定义的全局变量被称为隐式的全局变量
     eg:f = 'value';

  由于全局变量可以被程序中的任何部分在任意时刻改变,所以会使得程序的复杂度大大增加,在程序中使用全局变量降低了程序的可靠性,下面提出两种避免使用全局变量的方法:
  (1)在应用程序中创建一个唯一的全局变量,并定义该变量为当前应用的容器:
     var test = {};
     test.name = {
         "firstName" = 'first',
         "lastName" = 'last'
     };
     test.work = {
         number = 123,
         get = function(){
             alert("get attribute");
         }
     };
   (2)使用闭包
   var foo = function(){
        var a = 1,b = 2;
        var bar = function(){
            var b = 3,c = 4;
            a += b + c;
        };
        bar();
    };
    js和c语言等其他语言不一样,js支持函数作用域,但是并不支持块级作用域,定义在函数中的参数和变量在函数外都是不可见的,并且在一个函数中的任何位置定义的变量在该函数中的任何地方都可见。

转载于:https://my.oschina.net/sunshinewyf/blog/618876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值