网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

for循环的小收获

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

刚看了一篇文章《Rethinking JavaScript for-loops》,有点小收获。

我们常常这么写一个for循环:

  1. for(var i=0; i<arr.length; i++) { 
  2.     var each = arr[i]; 
  3.     //do something 

一个简单的改进是将arr.length存储起来,这样可以减少对象属性的反复读取:

  1. for(var i=0,l=arr.length; i<l; i++) { 
  2.     var each = arr[i]; 
  3.     //do something 

还可以将递增改为递减,当i递减到0时便可以触发循环的退出条件,这样就减少了一次运算(并没有减少)。像下面这样:

  1. for (var i=arr.length; i––;) { 
  2.     var each = arr[i]; 
  3.     //do something 

这样循环造成的运算就只剩下一次了。

另外,如果能保证你的数组中没有0、false、null、”"这样的值,可以通过arr[arr.length+1]为undefined来退出循环:

  1. for (var i=0, each; each = arr[i]; i++) { 
  2.     //do something 

甚至是:

  1. for (var i=0, each; each = arr[i++];) { 
  2.     //do something 

当然,由于variable hoisting的存在,尽量不要把var放在for()语句中。

  1. var i; 
  2. for (i=arr.length; i–– && each = arr[i];) { 
  3.     //do something 

-- Return null --

  • 上一篇资讯: C#委托的概念
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师