尽可能避免使用全局变量和函数.
全局的变量和函数其实等价于 window 对象的属性/方法, 访问速度自然会慢.
var myvar = 0; // 336ms
window.myvar = 0; // 2383ms
var myfunc = function(){} // 3515ms
window.myfunc = function(){} // 10151ms
尽量避免用 new 操作符创建函数.
可能通过 new 创建的函数还需要额外地对函数内容字符串进行解析操作.
function f(){}; // 277ms
var f = function(){} // 3085ms
var f = new Function("") // 13275ms
尽量避免使用 eval() 执行代码.
原因同 new 创建函数的操作.
var myfunc = function(){} // 3408ms
eval("var myfunc = function(){}"); // 9140ms
少使用 new 操作符创建数组.
原因同 new 创建函数的操作. 特别在有大量数据时更为明显
a = [1, 2, 3]; // 4360ms
a = new Array(1, 2, 3); // 5000ms
尽量避免使用 push() 和 pop() 处理数组数据.
a[i] = value; // 1270ms
a.push(value); // 3240ms
使用对象代替数组存储数据对性能略有影响.
也许是因为 Javascript 的数组是个带有扩展方法和属性的对象, 而不像 VBScript 那样是单纯的数据结构.
a[i] = value; // 1270ms
obj[property] = value; // 960ms
使用 ++ 代替 x = x+1 和 +=.
事实上 ++ 并不比 + 和 += 快很多, 但是在大量的操作时就会体现出其优势.
而 + 和 += 几乎没有性能差别. 同理对 -- 和 - 以及 -= 适用.
x++; // 378ms
x = x+1; // 406ms
x += 1; // 406ms
使用局部变量缓存对象属性和函数指针
例如在遍历数组时缓存数组长度, 事实上获取 Javascript 的数组长度等于调用一个方法函数(大部分Javascript 引擎是这样实现的).
如果对 HTML DOM 进行操作, 那么优化的效果会非常明显.
for(var i=0;i<arr.length;i++){ ... } // 162ms
var length = arr.length;
for(var i=0;i<length;i++){ ... } // 156ms
或者使用局部变量缓存一个外部函数(具体效果视代码复杂度而定).
如果代码块中要多次调用一个外部函数或变量, 那么缓存的效果会非常明显.
function test(){ ... }
function run1(){ test(); }
function run2(){ var t = test; t(); }
run1(); // 98ms
run2(); // 80ms
避免使用 with 操作符
分享到:
相关推荐
JavaScript代码优化一例.pdf
主要介绍了JavaScript异步代码优化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本篇文章给大家分享了关于javascript代码优化的8点总结,希望我们整理的内容能够帮助到大家。
NULL 博文链接:https://t240178168.iteye.com/blog/1702269
simple优化一维函数的简单应用程序 simple-require和simple一样,除了使用 RequireJS simple-node一个简单的节点示例 automaton一种更复杂的应用程序,它为指定的输出路径调整机制。pso.js 在这种情况下由网络工作者...
下面我们通过这个例子介绍1个更简单的方法: 我们用将统计代码保存到1个文件:文件路径:/config/counter.conf 统计代码如下: 代码如下: [removed] var _gaq = _gaq || []; _gaq.push([‘_setAccount’, ‘UA-18744406-...
javascript 中粒子 群优化 的可视化_javascript _代码_下载
此外,很多程序辛辛苦苦的写出来的javascript代码却被别人随意的剽窃,实为憾事。本软件还可以通过对javascript的变量名称和过程名称进行编码,从而起到混淆ja代码的作用,保护您的劳动成功。 JS代码压缩,基本原理...
JavaScript代码格式化,对凌乱的JavaScript代码进行格式化,保持代码的整洁,挺好用的一个工具,虽然对于一些正则表达式的格式化效果有点不太好,但整体还是比较清晰的,毕竟我们的程序也只有那某个脚本文件是正则吧...
应用jQuery技术优化传统JavaScript代码制作网页块元素悬停功能.pdf
所以网页前端速度优化的一个重要项目就是:减小资源请求数。 事实上,业界有很有名气的js,css合并压缩开源程序:minify。 但悲剧的 minify 在 php5.3 , php 5.4 环境下无法使用,于是逼的我只好自己丰衣足食。 ...
用斐波那契记忆优化法优化递归,提高代码运行效率,这个是JavaScript版
第三篇讲解的是JavaScript的高级技术,主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用...
客户端脚本能让你的应用更加地动态和活跃, 但是浏览器对代码的解析可能造成效率问题, 而这种性能差异在客户端之间也不尽相同。 这里我们讨论和给出一些优化你的 JavaScript 代码的提示和最佳实践。
本书介绍了70多种有关优化网页HTML代码的原理与技巧,内容涉及HTML、图像、多媒体、表格、报头、网址、JavaScript、CSS、网站等十个方面的优化问题。相信读者能够利用这些技巧,减少网页的字节数,提高网页的显示...
cxVzxvcxvxzcvcxzvcasdA wefcccccccccccccccccccccccccewcccccccccccccccc
第三篇讲解的是JavaScript的高级技术,主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用...
前端 每日代码 中级进阶
内容全部由编写高质量的JavaScript代码的最佳实践组成,从基本语法、应用架构、工具框架、编码风格、编程思想等5大方面对Web前端工程师遇到的疑难问题给出了经验性的解决方案,为Web前端工程师如何编写更高质量的...