javascript switch() ou si()
qui serait mieux si je fais ceci:
if(message == 'redirect')
{
is_valid.accepted = true;
}
else if(message == 'invalid id')
{
is_valid.accepted = false;
}
else
{
is_valid.accepted = false;
}
ou je le fais de cette façon
switch (message)
{
case 'invalid id':
default:
is_valid.accepted = false;
break;
case 'redirect':
is_valid.accepted = true;
break;
}
je pense que vous avez besoin de votre
ça ressemble un peu pas le format normal? mais, je pense, devrait placer
Je ne sais pas si c'est important mais j'ai toujours défaut en bas. Pour moi c'est un format plus lisible.
case 'redirect':
bloc en haut.ça ressemble un peu pas le format normal? mais, je pense, devrait placer
case 'redirect':
sur le haut de sorte qu'il serait lisibleJe ne sais pas si c'est important mais j'ai toujours défaut en bas. Pour moi c'est un format plus lisible.
OriginalL'auteur ianace | 2011-04-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
switch
si vous prévoyait avoir besoin d'ajouter beaucoup de nouveaux cas.Si vous ne serez pas en ajoutant de nombreux cas, je pourrais faire, pour plus de clarté:
(notez également que votre chèque de 'id non valide ne fait rien)
Néanmoins, si vous avez eu à ajouter de nouvelles choses, remarquez comment il est bon que vous n'avez pas à répéter vous-même n'avez pas à répéter vous-même n'avez pas à répéter vous-même, aussi sexy, la mise en forme:
Imaginer tous ces affreux d'autre et d'autre-fi, vous auriez autrement.
sidenote:
Si vous aviez vraiment de règles compliquées, mais encore une liste blanche, liste noire-sur-un-seul-drapeau de paradigme, alors:
Vous pouvez aussi le faire si vous vouliez construire dynamiquement votre liste blanche.
is_valid.accepted = message == 'redirect'
suffiraOriginalL'auteur ninjagecko
Cela dépend de votre définition de mieux. Voulez-vous être une meilleure expérience de lecture ou de meilleures performances?
J'ai toujours jsPerf choses. Je n'ai pas vraiment beaucoup de soins sur la lisibilité si elle en fait mon code plus rapide/bon.
Ici est un jsPerf d'un tas de différents commutateur vs if/else if/si ==/si === consolidés.
http://jsperf.com/switch-if-else/16
Cette révision est 16 de l'épreuve. Donc, si vous cherchez à 10 semaines à partir de maintenant, assurez-vous que vous faites défiler vers le bas et de saisir le test le plus récent.
OriginalL'auteur james2doyle
La
switch
instruction est plus efficace/plus expressive queif/else
dans certains cas. Tandis que le suivantif/else
déclarationpeut être facilement converti à:
ce
switch
déclaration sur l'autre mainrésultats dans un incroyable inefficace
if/else
déclaration (switch
est plus efficace):ou exige qu'un
if/else
avec une variable supplémentaire, qui est déclaré dans ce but exclusivement:Veuillez noter que d'autres éléments (comme les variables) cause de la complexité et de la complexité rend les programmes plus sujettes à erreur. Le
switch
déclaration n'a pas besoin d'une telle variable, car elle est plus expressive.Non, pas plus de commentaires.
switch
soit plus efficace (il exécutealgo
qu'une seule fois) ou plus expressif (il n'a plus besoin d'variable)OriginalL'auteur
Commutateur est mieux si vous travaillez avec une longue liste de conditions possibles sur la même variable. Dans ce cas, je ne pense pas qu'il y a beaucoup de raisons d'utiliser l'interrupteur (), sauf si vous préférez la syntaxe.
OriginalL'auteur Winfield Trail
Si vous allez avec l'instruction si, personnellement, je préfère définition des valeurs par défaut au-dessus de la si, comme ceci:
De cette façon, vous avez toujours défaut à la sécurité d'un comportement qui est moins susceptible de se briser si vous ajoutez plus d'options plus tard. Aussi, vous voyez le comportement par défaut d'un coup d'oeil sans avoir à lire par le biais de la si-alors-sinon la logique. Et c'est beaucoup plus court code.
OriginalL'auteur Charlie Kilian
Ternaire?
is_valid.accepted = (message !== 'invalid id') ? true : false;
OriginalL'auteur Shaz