SORU
24 AĞUSTOS 2011, ÇARŞAMBA


While döngüsünde döngü yerine

Aşağıdaki kod parçası sendeledi jQuery kaynak (kullanılabilir here) okuma:

for (; i < length;) {
    if (callback.apply(object[i  ], args) === false) {
        break;
    }
}

Neden for döngü burada while döngü yerine kullanılır?

CEVAP
24 AĞUSTOS 2011, ÇARŞAMBA


Birisi benzeşme kötü kodlama stili için bir olması için oy veriyorum. for döngü i içinde bir dizi indis konuyor hem de görebiliyorum tek Açıklaması Bu. Bu daha iyi olurdu bence

while (i < length && callback.apply(object[i], args)) {
    i  ;
}

Veya orijinal örnek === operatör değer olduğunu hissetmek için ne ise, o zaman:

while (i < length && callback.apply(object[i], args) !== false) {
    i  ;
}

Bunu yapmak için başka bir olası nedeni bir performans iyileştirmesi olabilir. Bu hızlı olmasına rağmen araya getirdiğim benchmark bu teoriyi çürütmek gibi görünüyor. IE ve Firefox while döngü yukarıda Krom for orijinal döngü oranla daha hızlı Windows, her iki döngüler aynı gerçekleştirin. X for döngü Firefox 'luk bir avantajı var OS, Chrome, bu ikisi arasında fark yok, ve Safari %6 while döngü tercih ediyor.

Performans açısından bir yıkayın. O zaman da pazar payı bakılırsa muhtemelen bu durumda while döngü tercih olurdu Mac, Firefox için optimize önce Windows üzerinde Chrome için optimize etmek isterim.

Performans optimizasyonu bu kod ile bir faktör oynadı pek olası değil benim için diyor. Ve sadece kötü kodlama tarzı kod Gözden Geçirme süreci geçmiş bunu yaparken bir örnek oldu Bu benim orijinal teorisine geri dönüyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006