JavaScript入门教程

JavaScript简介
JavaScript语法基础
JavaScript流程控制
JavaScript函数
面向对象编程
JavaScript事件
JavaScript DOM
正则表达式
JavaScript BOM
AJAX

专题分析

浏览器兼容性
JS优化
Web前端开发规范
编辑器推荐
总结和笔记

学习助手

对象参考手册
ECMAScript分析
数据中心
QQ交流群

Javascript中声明变量速度的研究

声明变量到底要不要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