Tout d'abord, il n'y a jamais une longueur de coûts pour l'utilisation d'un for
boucle sur un while
boucle, mais vous pouvez obtenir des fonctionnalités supplémentaires avec l' for
boucle, de sorte que certains codeurs juste de toujours utiliser l' for
:
for(;<condition>;){}
while(<condition>){}
Cela dit, je pense que le but, ici, peut-être pour des raisons de cohérence avec le reste du code.
Par exemple, voici une partie du code d'origine. Comme vous pouvez le voir, dans ce code, vous pouvez rester dans la boucle "for" mode de penser tout le temps, de sorte qu'il se sent de plus en plus cohérentes:
if (args) {
if (isObj) {
for (name in object) {
if (callback.apply(object[name], args) === false) {
break;
}
}
} else {
for (; i < length;) {
if (callback.apply(object[i++], args) === false) {
break;
}
}
}
}
Comparez cela à le remplacement de la deuxième boucle avec un while
. Lorsque vous la lecture de ce code, vous devez l'activer à partir de la boucle "for" le mode de pensée de la boucle "while" mode de pensée. Maintenant, je ne sais pas pour vous, mais je la trouve un peu plus rapide pour mes yeux, pour basculer entre la boucle conditions ci-dessus, par opposition à la boucle conditions ci-dessous. C'est parce que dans le cas ci-dessus, je peut juste se concentrer sur les conditions, alors que dans le cas ci-dessous, mes yeux sont attirés à relire l' while
et de la for
à chaque fois parce qu'ils sont différents:
if (args) {
if (isObj) {
for (name in object) {
if (callback.apply(object[name], args) === false) {
break;
}
}
} else {
while (i < length) {
if (callback.apply(object[i++], args) === false) {
break;
}
}
}
}