巧用局部变量提升javascript性能

 更新时间:2014年02月24日 15:44:36   作者:  
巧用局部变量可以有效提升javascript性能,下面有个不错的示例,大家可以参考下
javascript中一个标识符所在的位置越深,它的读写速度也越慢。因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的。一个好的经验法则是:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存储到局部变量里。

例如:
复制代码 代码如下:

<!-- 优化前 -->
<script type="text/javascript">
function initUI () {
var bd = document.body,
links = document.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}

document.getElementById("go-btn").onclick = function(){
start();
}

bd.className = "active";
}
</script>

该函数引用了三次document,而document是个全局对象。搜索该变量的过程必须遍历整个作用域链接,直到最后在全局变量对象中找到。你可以通过以下方法减少对性能的影响:先将全局变量的引用存储在一个局部变量中,然后使用这个局部变量代替全局变量。

例如:
复制代码 代码如下:

<!-- 优化后 -->
<script type="text/javascript">
function initUI () {
var doc=document,
bd = doc.body,
links = doc.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}

doc.getElementById("go-btn").onclick = function(){
start();
}

bd.className = "active";
}
</script>

相关文章

  • JavaScript中“+”的陷阱深刻理解

    JavaScript中“+”的陷阱深刻理解

    本文将详细介绍JavaScript中“+”的一些错误应用,需要的朋友可以参考下
    2012-12-12
  • js操作textarea方法集合封装(兼容IE,firefox)

    js操作textarea方法集合封装(兼容IE,firefox)

    在DOM里面操作textarea里面的字符,是比较麻烦的。于是我有这个封装分享给大家,测试过IE6,8, firefox ,chrome, opera , safari。兼容没问题。
    2011-02-02
  • 理解javascript异步编程

    理解javascript异步编程

    这篇文章主要为大家介绍了javascript异步编程,从浅入深的学习javascript异步编程,对javascript异步编程感兴趣的小伙伴们可以参考一下
    2016-01-01
  • javascript实现右下角广告框效果

    javascript实现右下角广告框效果

    这篇文章主要为大家详细介绍了javascript实现右下角广告框效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 微信小程序 获取手机号 JavaScript解密示例代码详解

    微信小程序 获取手机号 JavaScript解密示例代码详解

    这篇文章主要介绍了微信小程序 获取手机号 JavaScript解密的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • webpack代码分片的实现

    webpack代码分片的实现

    代码分片是webpck打包工具所特有的一项技术,通过这项功能可以把代码按照特定的形式进行拆分,使用户不必一次全部加载,而是按需加载。本文就来详细介绍,感兴趣的可以了解一下
    2021-07-07
  • 编辑浪子版表单验证类

    编辑浪子版表单验证类

    编辑浪子版表单验证类...
    2007-05-05
  • TypeScript创建一个简单Web应用

    TypeScript创建一个简单Web应用

    这篇文章主要为大家介绍了TypeScript创建一个简单Web应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • JavaScript控制网页层收起和展开效果的方法

    JavaScript控制网页层收起和展开效果的方法

    这篇文章主要介绍了JavaScript控制网页层收起和展开效果的方法,涉及javascript操作网页元素动态效果的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • ES6新特性之数组、Math和扩展操作符用法示例

    ES6新特性之数组、Math和扩展操作符用法示例

    这篇文章主要介绍了ES6新特性之数组、Math和扩展操作符用法,结合实例形式分析了ES6中数组、Math和扩展操作符的新特性、使用方法及相关注意事项,需要的朋友可以参考下
    2017-04-04

最新评论