声明变量到底要不要var
- 使用var语句多次声明一个变量不仅是合法的,而且也不会造成任何错误。
- 如果重复使用的一个声明有一个初始值,那么它担当的不过是一个赋值语句的角色。
- 如果重复使用的一个声明没有一个初始值,那么它不会对原来存在的变量有任何的影响。
没有var声明的变量,是作为全局变量存在的;有var声明的变量,属于局部变量,尤其是在函数内部。并且,经过测试,带var声明比不带var速度要快,比如:"var a"比"a"具有更快的执行速度。我们有理由推测,局部变量的声明比全局变量的声明效率更高。
直接量与new
变量有好几种类型,但是同一类型的变量创建的方式可能不一样,比如string、Object、Array等这些类型的变量声明或者创建。经过测试,通过直接量声明的速度明显快于通过new声明的速度,比如"var a={} "比"var a=new Object()"具有更快的执行速度。
局部变量与全局变量
现在笔者来告诉你,函数内尽量多设局部变量,这样即安全又快速,变量操作也更加合理,不会因为函数内胡乱操作全局变量而导致逻辑错误。写个例子说明下,先建立一个全局变量:var m=1; ,接着我读取这个全局变量1000000次
全局变量:
for(var i=1000000;i--;)
{a=m;}
局部变量:
(function (){
var n=m;
for(var i=1000000;i--;)
{a=n;}
})();
执行速度2>1
通过上面测试表明,先将m这个全局变量的值存给局部变量n,在将n赋值给a具有更快的速度。
变量名长度
变量名是自己取的,为了照顾语义和规范,变量名可能稍长,但是注意了,变量名的长度也会影响代码的执行速度。经过测试,长的变量名声明的执行速度没有短的快,比如"var a=1"比"var aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=1"具有更快的执行速度。
所以,我们在声明变量的时候,尽量缩写一些单词,并记忆一些常见的缩写,以下是缩写示例:
单词 | 缩写 |
---|---|
array(数组) | arr |
string(字符串) | str |
number(数量/数字) | num |
function(函数) | fun |
message(消息/信息) | mes |
userNumber(会员数量) | userNum/uNum |
parentElement(父级节点/父级元素) | parentEle |
returnArray(返回的数组) | returnArr |