現在的位置: 首頁 > web前端 > 正文

JS for循環怎么寫才能更高效

2020年06月15日 web前端 ⁄ 共 1210字 ⁄ 字號 評論關閉

  對于for循環,每次開始循環之前都會判斷循環條件,滿足循環條件才執行后邊的語句。這個例子中,每次循環都會執行 arr.length 語句來獲取數組長度,數組越大,執行時間越長;如果是獲取 HTMLCollection 對象的長度,每次都要實時查詢DOM,而DOM操作一般都是比較昂貴的。下面學步園小編來講解下JS for循環怎么寫才能更高效?

  JS for循環怎么寫才能更高效

  首先舉例說明,例如我們需要遍歷數組,很多時候我們會這樣做:

  var arr=["www.itxueyuan.com","javascript","你好"];

  for(var i=0,i

  document.write("第"+(i+1)+“項的值是:”+arr[i]);

  注意,這里的HTMLCollections指的是DOM方法返回的對象,例如:

  document.getElementsByName()

  document.getElementsByClassName()

  document.getElementsByTagName()

  還有其他一些HTMLCollections,這些是在DOM標準之前引進并且現在還在使用的。有:

  document.images: 頁面上所有的圖片元素

  document.links : 所有a標簽元素

  document.forms : 所有表單

  document.forms[0].elements : 頁面上第一個表單中的所有域

  JS for循環怎么寫才能更高效

  這就給我們一個啟示,有必要提前緩存數組長度或者 HTMLCollection 對象長度。正如下面代碼所示:

  for (var i = 0, max=arr.length; i < max; i++) {   // 使用myarray[i]做點什么   }   這樣,在這個循環過程中,你只檢索了一次長度值。   在所有瀏覽器下,循環獲取內容時緩存HTMLCollections的長度是更快的,2倍(Safari3)到190倍(IE7)之間。此數據貌似很老,僅供參考。   而且,你可以把變量從循環中提出來,讓代碼更加優雅,就像下面這樣:   function looper() {   var i = 0,   max,   myarray = [];   // ...   for (i = 0, max = myarray.length; i < max; i++) {   // 使用myarray[i]做點什么   }   }   這種形式具有一致性的好處,因為你堅持了單一var形式。不足在于當重構代碼的時候,復制和粘貼整個循環有點困難。例如,你從一個函數復制了一個循環到另一個函數,你不得不去確定你能夠把i和max引入新的函數(如果在這里沒有用的話,很有可能你要從原函數中把它們刪掉)。   以上就是關于“JS for循環怎么寫才能更高效”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

抱歉!評論已關閉.

奔驰宝马破解版下载 微豪配资 北京十一选五前三组 十一选五湖北20181027 分析本单位资产绩效情况 内蒙古快三基本走形图 黑龙江十一选五开奖走势图一定牛 天津体彩11选五玩法 泳坛夺金河南近200期 排列五基本走势图表图 股票涨跌关系 股票推荐微博 快乐十分投注技巧介绍 中国重工股票 北京市11选五一定牛 二肖主二码天天好彩 国际股票指数