javascript 迴圈速度 for loop || while loop

來源:互聯網
上載者:User

  javascript做為用戶端的指令碼語言,一般來說都是速度是第一.要求速度就要看怎樣才會讓速度最快.

  迴圈基本上所有語言中都有的,也是最常用的,它的體現,基本能代錶速度的體現.

  javascript中基本分2種迴圈:for迴圈 while迴圈

  for迴圈分為3種:for ++;for --;for in

  while迴圈分為2種(do-while語句不考慮):while ++;while --

  到底哪個快些?

  隨便寫幾個測試語句,基本就能比較出最快的迴圈是哪個.

  得出結論:for -- 和 while -- 應該是最快的,兩者的速度差不多,經過多次實驗,還是對比不出哪個快些;有知道內部詳               細實現的請聯絡我,謝謝啦.

                   for in 最慢,總以為最簡單的最快,試過後才知道.......for in 實在太慢了,令人傷心啊

  step 1 : for 迴圈: < script type = " text/javascript " >
/**/ /**
 *test for ++ loop;for -- loop;for in loop
 *which one is the fastest one
 *
 *by sun 20071211
 */
  var  arrLength  =  window.prompt( " input a number for loop count " , 100000 );

 document.write( " loop count :  " + arrLength + " <br/> " );

  var  tempArr  =   new  Array();
  var  tempValue;
  var  arrEndPosition  =  arrLength  -   1 ;

  // timer
  var  startTime;
  var  endTime;

  // fill
  for ( var  i  =  arrEndPosition ; i  >=   0  ; i -- ) ... {
  tempArr.push(i);
 }

  // for ++ loop
 startTime  =   new  Date().getTime();
  for ( var  i  =   0  ; i  <  arrLength ; i ++ ) ... {
  tempValue = tempArr[i];
 }
 endTime  =   new  Date().getTime();
 document.write( " for ++ time :  " + (endTime - startTime));
 
 document.write( " <br/> " ); 

  // for -- loop
 startTime  =   new  Date().getTime();
  for ( var  i  =  arrEndPosition ; i  >=   0  ; i -- ) ... {
  tempValue = tempArr[i];
 }
 endTime  =   new  Date().getTime();
 document.write( " for -- time :  " + (endTime - startTime));
 
 document.write( " <br/> " ); 

  // for in loop
 startTime  =   new  Date().getTime();
  for ( var  i  in  tempArr) ... {
  tempValue = tempArr[i];
 }
 endTime  =   new  Date().getTime();
 document.write( " for in time :  " + (endTime - startTime));
</ script >

  測試結果 速度: for -- < for ++ < for in(最慢) 

  step 2 : while 迴圈: < script type = " text/javascript " >
/**/ /**
 *test while ++ loop;while -- loop
 *
 *by sun 20071211
 */
  var  arrLength  =  window.prompt( " input a number for loop count " , 100000 );

 document.write( " loop count :  " + arrLength + " <br/> " ); 

  var  tempArr  =   new  Array();
  var  tempValue;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.