Dans le livre Javascript : Les bons côtés de Douglas Crockford, c'est tout ce que l'auteur a à dire sur la déclaration continue :
El
continue
saute au début de la boucle. Je n'ai jamais vu un morceau de code qui n'ait pas été amélioré en le remaniant pour supprimer l'instructioncontinue
déclaration.
Ça me perturbe vraiment. Je sais que Crockford a des opinions très tranchées sur JavaScript, mais cela me semble tout à fait faux.
Tout d'abord, continue
fait plus que simplement sauter au sommet d'une boucle. Par défaut, il passe également à l'itération suivante. L'affirmation de Crockford n'est-elle donc pas une information complètement fausse ?
Plus important encore, je ne comprends pas entièrement pourquoi continue
serait même considéré comme mauvais. Ce post fournit ce qui semble être l'hypothèse générale : Pourquoi continuer à l'intérieur d'une boucle est une mauvaise idée ?
Bien que je comprenne comment continue
peut rendre le code difficile à lire dans certains cas, je pense qu'il est tout aussi probable qu'il puisse rendre le code plus lisible. Par exemple :
var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
if(typeof someArray[i]==='number'){
for(var j=0;j<someArray[i];j++){
console.log(j);
}
}
}
Cela pourrait être refactorisé en :
var someArray=['blah',5,'stuff',7];
for(var i=0;i<someArray.length;i++){
if(typeof someArray[i]!=='number'){
continue;
}
for(var j=0;j<someArray[i];j++){
console.log(j);
}
}
continue
n'est pas particulièrement bénéfique dans cet exemple spécifique, mais il démontre le fait qu'il réduit la profondeur d'imbrication. Dans un code plus complexe, cela peut potentiellement améliorer la lisibilité.
Crockford ne fournit aucune explication quant à la raison pour laquelle continue
ne devrait pas être utilisé. Y a-t-il une signification plus profonde derrière cette opinion qui m'échappe ?
0 votes
Le mot-clé
continue
est un outil - utilisez-le lorsque c'est possible. Parfois c'est nécessaire, la plupart du temps ça ne l'est pas. La seule fois où c'est mauvais, c'est lorsque vous n'avez pas besoin de l'utiliser mais que vous êtes trop paresseux ou trop négligent pour le faire autrement.0 votes
J'ai eu le même sentiment et c'est pourquoi j'ai fait mon poste . Ce qui m'a aidé est de penser au mot
hop
lors de l'utilisation des déclarations de continuation. Je pense que M. Crawford a mal choisi son mot lors de la conception du langage :P Surtout que hop peut appliquer la logique 'continue' derrière. Si vous sautez par-dessus quelque chose, vous continuez généralement aussi. Pensez aux coureurs de marathon comme une bonne analogie.6 votes
"Mr. Crawford" n'a pas conçu la langue.
1 votes
Quelqu'un devrait écrire un livre intitulé "JavaScript : The Good Parts : The Good Parts". Franchement, je pense que beaucoup de conseils dans l'original devraient être pris avec un grain de NaCl, si ce n'est une mine de sel wole.
3 votes
Plus je lis sur Crockford, moins je respecte son opinion. Il semble n'être qu'un vieux gardien grincheux avec des préférences de goût totalement irrationnelles qu'il déguise en sagesse forgée par l'expérience.
0 votes
@rlemon M. Crockford non plus.
1 votes
@TylerH Peut-on marquer M. Crockford comme "principalement basé sur l'opinion" ? lol
0 votes
@twiz Absolument.