var声明

var的使用

1,变量声明有无var的区别以及性能影响

对于es5及其以下版本的js,在声明变量时候,可以使用var,也可以直接写变量。两者是有区别的,有var根据情况可以定义全局变量或局部变量,无var则被认为是window下的全局变量。

1),两者区别:

//测试1

a1 = 1;

function test1(){

console.log('测试1:'+a1);

a1 = 2;

console.log('测试1:'+a1);

}

test1();

console.log('测试1:'+a1);   

//结果 1 2 2

//测试2

a2 = 1;

function test2(){

var a2;

console.log('测试2:'+a2);

console.log('测试2:'+window.a2);

a2 = 2;

console.log('测试2:'+a2);

}

test2();

console.log('测试2:'+a2);   

//结果 undefined 1 2 1

2),性能影响:

声明变量有var:

function test_var(){

var a = 'box';

var b = 'box';

var c = 'box';

var d = 'box';

var e = 'box';

return a+b+c+d+e;

}

console.log(test_var());

 

声明变量无var:

function test_var(){

a = 'box';

b = 'box';

c = 'box';

d = 'box';

e = 'box';

return a+b+c+d+e;

}

console.log(test_var());

 

经过多次测试,发现无var时浏览器执行时间要少于有var时。

但在实际开发中,依然建议采用var来声明变量,提高程序的严谨性避免出错。

2,全局变量与局部变量

    var box = "box";   //全局变量

function getObj(){

return box;

}

console.log(getObj());

 

次测试图针对全局变量

function getObj(){

var box = "pox"; //局部变量

return box;

}

console.log(getObj());

 

次测试图针对局部变量

经过多次测试,浏览器分别执行有全局变量与局部变量的程序,前者所消耗的时间多余后者。

定义全局变量,改变量会存在内存中,用户关闭浏览器或手动销毁时才被销毁。如果定义局部变量,则在执行该函数时候变量才会被js引擎存储在内存里。

除非确实需要全局变量,建议一般都采用局部变量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值