js:优化javascript的执行效率一些方法

原创 2013年12月03日 10:49:21

1、在低版本浏览器中(如IE6,IE7等)串联字符串时使用数组的join方法就比使用+号来连接高效很多(如['aaa','bbb','ccc'].join()比'aaa'+'bbb'+'ccc'高效);

2、Array:
pop比shift高效,push比unshift高效。这对于设计二叉堆结构比较重要,将最大或者最小的元素放在数组末尾最好。

3、数字取整最好用移位操作:
1.1 >> 0;

4、使用直接量创建Array和Object:
var a = [];
var o = {};

5、对象层次不要嵌套太多,减少对象的查找:
不要用a.b.c.d.e,这种设计方式获取e对象。

6、键值对应取值,与switch case的比较,键值对应,比switch case高效,各个浏览器均测试过,可以看看 关于这个比较的文章javascript小实验

7、如果你使用jq的话,还有一个$('xxxx').empty().append('xxxxxxx');和$('xxxxx').html('xxxxx');的比较,结果是$('xxxx').empty().append('xxxxxxx');胜出,文章地址是jQuery小实验

8、循环
在JavaScript中,我们可以使用for(;;),while(),for(in)三种循环,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说基本(平时使用时)等价。

如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。

如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。

9、局部变量和全局变量
局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。

10、不使用Eval
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。这时候使用JavaScript所支持的闭包可以实现函数模版(关于闭包的内容请参考函数式编程的有关内容);

11、字符串连接
如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr;

12、把数字转换成字符串,应用"" + 1,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:

("" +) > String() > .toString() > new String()

这条其实和下面的“直接量”有点类似,尽量使用编译时就能使用的内部操作要比运行时使用的用户操作要快。

String()属于内部函数,所以速度很快,而.toString()要查询原型中的函数,所以速度逊色一些,new String()用于返回一个精确的副本;

13、浮点数转换成整型,这个更容易出错,很多人喜欢使用parseInt(),其实parseInt()是用于将字符串转换成数字,而不是浮点数和整型之间的转换,我们应该使用Math.floor()或者Math.round()。

14、字符串遍历操作
对字符串进行循环操作,譬如替换、查找,应使用正则表达式,因为本身JavaScript的循环速度就比较慢,而正则表达式的操作是用C写成的语言的API,性能很好;

15、定时器
如果针对的是不断运行的代码,不应该使用setTimeout,而应该是用setInterval。setTimeout每次要重新设置一个定时器;


更新中……,敬请期待!




版权声明:本文为博主原创文章,未经博主允许不得转载。

javascript后台运行效率是否比较低?

nodejs这个服务器端javascript框架出现后,很多人质疑其效率是否比较低。这也很正常,因为javascript本来就是是用C编写的前端脚本语言,本身依赖解释器运行,运行效率当然没有编译运行的...
  • zyus1987
  • zyus1987
  • 2015年08月12日 11:21
  • 938

加快JavaScript加载和执行效率

JavaScript 在浏览器中的性能成为开发者所面临的最重要的可用性问题。而这个问题又因 JavaScript 的阻塞特性变的复杂,也就是说当浏览器在执行 JavaScript 代码时,不能同时做其...
  • hj7jay
  • hj7jay
  • 2017年02月04日 08:54
  • 716

JavaScript执行效率总结

JavaScript执行效率总结    Javascript是一门非常灵活的语言,我们可以随心所欲的书写各种风格的代码,不同风格的代码也必然也会导致执行效率的差异,开发过程中零...
  • u012875880
  • u012875880
  • 2013年12月03日 08:47
  • 1656

JavaScript运行时性能分析

JavaScript运行时性能分析 用户期待页面可以交互,并且流畅。像素管道的每个阶段都是一个很好的机会来说明jank现象。 学习工具和策略来定位和解决那些降低运行时性能的常见问题。...
  • galaa2011
  • galaa2011
  • 2016年05月04日 23:57
  • 1244

提高SQL执行效率的方法有哪些?

2、JAVA中的存储过程?     3、解释select * from dual的执行计划?     4、提高SQL执行效率的方法有哪些?...
  • zhan3107006604
  • zhan3107006604
  • 2014年05月31日 19:14
  • 1867

前端网页与js性能优化

前端网页性能最佳实践 你愿意为打开一个网页等待多长时间?我一秒也不愿意等。但是事实上大多数网站在响应速度方面都让人失望。现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文...
  • he90227
  • he90227
  • 2015年10月19日 10:50
  • 2175

优化php执行效率的40条小技巧

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2.echo的效率高于print,因为echo没有返回值,print返回一个整型; 3.在循环之前设置循环的最大次数,而非在在循环...
  • u014060400
  • u014060400
  • 2015年04月10日 13:25
  • 1454

HtmlUnit动态执行js函数

功能:动态指定js函数,实际上这个效果不是很有用,这里就做一个记录而已,参考代码如下: package com; import com.gargoylesoftware.htmlunit.Brows...
  • fjssharpsword
  • fjssharpsword
  • 2017年03月11日 15:54
  • 3628

javascript性能提升——合理使用if-else 和switch

——authored by 李家优 使用if-else 或者switch 是基于测试条件的数量:条件数量较大,倾向于使用switch 而不是if-else。这通常归结到代码的易读性,如果条件较少时,i...
  • cengjingcanghai123
  • cengjingcanghai123
  • 2014年03月18日 10:56
  • 3414

JS性能优化笔记

通过网上查找资料了解关于性能优化方面的内容,现简单整理,仅供大家在优化的过程中参考使用,如有什么问题请及时提出,再做出相应的补充修改。   一、 让代码简洁:一些简略的表达方式也会产生很好...
  • huanghui8030
  • huanghui8030
  • 2013年08月21日 15:11
  • 9344
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js:优化javascript的执行效率一些方法
举报原因:
原因补充:

(最多只允许输入30个字)