JS 代码模式

全局变量


尽量不要使用javascript中的全局变量,因为
1.全局变量生命周期长,长期占用内存。
2.js代码可移值性不强,如果出现重名变量,前面的变量将被后面变量覆盖,使用前面变量的脚本出现问题。

在function中不用var修饰的变量为全局变量,例如:

function hello() 
{
        alert(aa);
}
此表达式由右向左解析,b为全局

function foo() {
    var a = b = 0;
    // ...
}
应该为如下写法:

function foo() 
{
    var a, b;
    a = b = 0; // both local
}

// 定义三个global变量
var global_var = 1;
global_novar = 2; // antipattern
(function () {
    global_fromfunc = 3; // antipattern
}());
// attempt to delete
delete global_var; // false
delete global_novar; // true 删除的是global对象的属性
delete global_fromfunc; // true 删除的是global对象的属性
// test the deletion
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"


在浏览器环境下window对象指向的是global对象,如果非浏览器环境:


  var global = (function () {
            return this;
        }());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值