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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007