JavaScript性能问题——2018-02-24

一、for循环:

1、遍历数组:

var aName = ['张三','李四','王五'];
for(var i=0;i<aName.length;i++){
  alert(aName[i]);
}

问题:每进行一次循环都会计算一次数组的长度。

改进:提前将数组的长度计算出来,并存起来,使数组的长度只需要计算一次。

var aName = ['张三','李四','王五'];
var length = aName.length;
for(var i=0;i<length;i++){
  alert(aName[i]);
}

2、innerHTML

例如向body中添加2000个按钮:

for(var i=0;i<2000;i++){
  document.body.innerHTML += '<input type="button" value="按钮"/>'; 
}

问题:每一次添加一个按钮都会将原先的按钮都保存并重新覆盖一边。

改进:将要添加的HTML语句提前存到一个字符串里面,然后通过innerHTML一次性添加进去。

var string="" ;
for(var i=0;i<2000;i++){
  string += '<input type="button" value="按钮"/>'; 
}
document.body.innerHTML = string;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一直在学习 javascript,也有看过《犀利开发 Jquery 内核详解与实践》,对这本书的评价只有两个字犀利...
    独念白阅读 300评论 0赞 2
  • 前言 一直在学习javascript,也有看过《犀利开发Jquery内核详解与实践》,对这本书的评价只有两个字犀利...
    美洋洋_4f15阅读 404评论 0赞 0
  • 里程碑思维:在思考问题的时候,加上时间维度的一种思考方式。短期来看,这件事会怎样;长期来看,这件事又会怎样;我们应...
    后后先在想什么阅读 856评论 1赞 0
  • 编辑的时候起什么名字呢,几天前看到水清心宁的文章《故乡的风》写的极美,于是便想起晚风来,也正符合我画的被风凌乱的发...
    秀英阅读 2,218评论 75赞 123

友情链接更多精彩内容