【原创】优化JS技巧
时间:2006-09-11
来源:互联网
做JavaScript也有段时间了,虽然技术还是很弱,对于如何优化JavaScript我把自己的经验和网上查找的一些资料总结一下,希望对各位朋友有帮助。废话不多说咱们开始:
语法方面:
循环
循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in) 三种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说基本(平时使用时)等价。
而事实上,如何使用这两个循环,则有很大讲究。我得出的结论是:
如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或―操作符。
如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。
局部变量和全局变量
局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。还有,局部变量屏蔽全局变量。
最好少使用Eval
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。所以建议不使用。那在什么时候使用呢?比如AJAX返回是JS代码,你想让这段代码执行,那么此时你可以使用eval。
减少重复查找
因为JavaScript的解释性,所以a.b.c.d.e,需要进行至少4次查询操作,先检查a再检查a中的b,再检查b中的c,如此往下。所以如果这样的表达式重复出现,应该尽量少出现这样的表达式,可以利用局部变量,把它放入一个临时的地方进行查询。
这一点可以和循环结合起来,因为我们常常要根据字符串、数组的长度进行循环,而通常这个长度是不变的,比如每次查询a.length,就要额外进行一个操作,而预先把var len=a.length,则就少了一次查询......
更多参见
作者: ilovephp 发布时间: 2006-09-11
作者: Phzzy 发布时间: 2006-09-11
作者: coolstr 发布时间: 2006-09-11
作者: xiaojia 发布时间: 2006-09-11
前台资源的释放
如果是全局变量可注意以下几点
对象: obj = null
数组:array.length = 0
字符串:str = ""
数字:numeric = 0
因为全局变量是DOM主对象下的增属性,不离开该页是常驻内存的.创建的变量信息如果过大,最好还是在不用的时候释放掉.
作者: hy0kl 发布时间: 2006-09-11
作者: ilovephp 发布时间: 2006-09-11
作者: loveyou_85 发布时间: 2006-09-24
作者: jeffeng 发布时间: 2006-11-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28