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
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.
Strlen eğer bir döngü koşulu yerine ku...
Bir dağıtım kurmak PHP projeler için /...
'döngü için en hızlı yol boyunca ...
Neden't JavaBeans yerine değişmez...
nasıl Windows yol yerine, MS-DOS yolun...