`

JavaScript代码优化(一)

阅读更多

尽可能避免使用全局变量和函数.
全局的变量和函数其实等价于 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代码的优化,着重于介绍JavaScript代码在企业开发中的重要性及其优化方法。 一、JavaScript代码的重要性 随着Web 2.0和Ajax概念的提出,JavaScript代码得到了...

    前台javascript速度优化

    本文将深入探讨"前台JavaScript速度优化"的相关知识点,包括但不限于代码优化策略、工具应用以及Ajax性能提升。 一、代码优化策略 1. 减少DOM操作:频繁的DOM操作会降低页面性能,因为每次操作都需要浏览器重新...

    javascript经典特效---javascript代码自动生成.rar

    这个压缩包内包含了一个名为“javascript代码自动生成.htm”的文件,很可能是教程或工具的说明文档。 在JavaScript编程中,代码自动生成通常指的是通过某些工具或方法自动化创建代码的过程,这有助于提高开发效率并...

    javascript代码压缩工具

    总之,JSMinifier作为一款基于Java的JavaScript代码压缩工具,为开发者提供了一种快速、简单的方式来进行代码优化。通过合理使用,可以显著提升网页加载速度,降低服务器压力,为用户提供更好的在线体验。在实际使用...

    浅析JavaScript异步代码优化

    JavaScript异步代码优化是开发过程中不可或缺的一环,尤其是在前端开发中,由于JavaScript的单线程特性,异步处理显得尤为重要。本文将深入探讨JavaScript异步编程的问题及其优化策略。 首先,我们来关注最常见的一...

    javascript网站广告代码大全

    在这个"JavaScript网站广告代码大全"中,我们可能会发现一系列用于实现各种广告展示形式的代码示例,包括超酷选项卡广告、幻灯片播放效果广告以及首页两侧广告。这些功能都是为了提升用户体验,同时吸引用户注意力,...

    JavaScript 代码压缩工具

    JavaScript代码压缩工具是一种优化网页性能的关键技术,尤其在当今互联网应用越来越复杂,JavaScript文件体积日益庞大的背景下,其重要性不言而喻。压缩JavaScript代码的主要目的是减少文件大小,提高网络传输效率,...

    javascript代码优化的8点总结

    JavaScript代码优化是一项持续且重要的工作,它有助于提高代码的执行效率、可读性和可维护性。以下是根据给定文件内容总结的关于JavaScript代码优化的8点要点。 1. 松耦合原则 松耦合是一种设计原则,指的是在修改...

    JavaScript代码生成器

    JavaScript代码生成器就是一种能够帮助开发者快速生成JavaScript代码的工具,它可以极大提高开发效率,减少手动编写重复性代码的工作量。 JavaScript代码生成器通常具备以下功能: 1. 自动化模板:这些工具提供了...

    超实用的javascript代码段 源码

    "超实用的javascript代码段"是席新亮著作的一个资源集合,提供了许多实际开发中常用且高效的代码片段,对于学习和提升JavaScript编程技能非常有帮助。 一、基础语法与类型 JavaScript的基础语法包括变量声明(var、...

    272个超酷经典推荐JavaScript代码

    在"272个超酷经典推荐JavaScript代码"这个资源中,我们可以预见到一系列实用且创新的JavaScript编程示例,这些示例将帮助开发者提升他们的技能,并为网页增加丰富的用户体验。 1. **基础语法和数据类型**:...

    JavaScript 小游戏代码汇总

    JavaScript 是一种广泛使用的脚本语言,常用于开发 web 应用程序尤其是游戏开发。以下是 JavaScript 小游戏代码汇总的知识点: 1. HTML 基础:代码开头使用的 `&lt;!DOCTYPE html&gt;` 声明了文档类型为 HTML,並引入了 ...

    javascript源代码下载

    2. **代码调试与优化**:掌握源代码可以帮助开发者更好地调试和优化自己的JavaScript程序。 3. **二次开发**:许多开源项目提供了可扩展的源代码,允许开发者根据自身需求进行定制化开发。 ### 如何获取 JavaScript...

    javascript代码加载优化方法

    JavaScript代码加载优化是提高网页性能的关键技术之一,尤其是在处理大量脚本或第三方追踪代码时。在给定的例子中,我们看到一种将统计代码分离并异步加载的方法,以避免阻塞页面渲染,同时确保统计数据的准确收集。...

    grunt代码优化管理工具源码

    《grunt代码优化管理工具源码解析》 在现代Web开发中,代码优化和管理是提升应用性能的关键步骤。本文将深入探讨"grunt代码优化管理工具"的源码,揭示其在代码优化和性能提升方面的机制,帮助开发者更好地理解和...

    javascript代码混淆器

    总的来说,JavaScript代码混淆器是开发者保护代码、优化性能的重要工具。JSMin、YUI Compressor和JSObfuscator各有其特点和适用场景,选择哪一种取决于实际的需求,例如,对于追求极致压缩的场景,JSMin和YUI ...

    超实用的JavaScript代码段.pdf

    这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...

    Java调用javaScript代码

    文件列表中的"JavaSriptParser.java"可能是实现这一功能的具体类,它可能包含解析和执行JavaScript代码的逻辑。在实际项目中,这个类可能会封装ScriptEngine的使用,提供更友好的API供其他Java组件调用。 总的来说...

Global site tag (gtag.js) - Google Analytics