Les Opérateurs conditionnels en Javascript
Est-il possible d'utiliser les opérateurs conditionnels comme une déclaration comme?
(x == y) ? alert("yo!") : alert("meh!");
Ou est-il plus correct de l'utiliser pour affecter une valeur comme?
z = (x == y) ? "yo!" : "meh!";
Si ce n'est pas incorrect pour l'utiliser comme une déclaration, puis, est-il possible d'ajouter plus d'une ligne de code pour l'exécution comme? Est-il plus correct d'utiliser ifthen et instructions de commutation pour plusieurs lignes de code?
(x == y) ? (alert("yo!"), document.write("woot!")) : (alert("meh!"), document.write("blah!"));
- La syntaxe existe pour une raison, C'est bien.
- j'en sais assez pour savoir qu'il ya une efficace ou plus bonne façon de faire les choses. je ne sais pas ce qu'ils sont, la plupart du temps! merci à chacun de vous, pour carillon! donc, les opérateurs conditionnels et de plusieurs états, mais il est préférable de ne pas les mélanger. l'a obtenu.
Vous devez vous connecter pour publier un commentaire.
Opérateurs conditionnels sont volontairement succinctes et elle est particulièrement utile pour les affectations:
De les utiliser pour exécuter conditionnellement fonctions, si elle est possible, doit, par souci de lisibilité être fait à l'aide de IF/ELSE:
Pendant de longue haleine, la plupart du temps, c'est la meilleure solution:
Un avantage remarquable pour le SI/d'AUTRE de la structure, c'est que vous pouvez ajouter des tâches supplémentaires dans chaque condition avec un minimum de tracas.
Votre dernier extrait est également possible, mais il semble un peu longue haleine et, de nouveau, peut-être mieux adapté à un plus classique de la structure logique; comme un if/ELSE bloc.
Cela dit, un opérateur conditionnel peut encore être lisible, par exemple
À la fin, comme pour beaucoup de choses, c'est à la préférence personnelle. Rappelez-vous toujours que le code que vous écrivez n'est pas juste pour vous; d'autres développeurs peuvent avoir à parcourir dans l'avenir; essayez de le rendre aussi lisible que possible.
JavaScript ne vous empêcheront pas de le faire, mais il est très inhabituel de la pratique qui va confondre personne la lecture de votre code.
L'opérateur conditionnel est presque toujours utilisé pour la sélection de deux valeurs possibles, non pas des déclarations. Un
if
déclaration est préféré pour les branchements conditionnels des états.Quant à votre dernière question, oui, si vous devez vraiment, vous pouvez abuser de la
[]
construire:Mais s'il vous plaît ne le font pas. 😎
Il est entièrement à vous, vous pouvez le faire de toute façon. Vous avez juste à demander vous-même, cependant, ne ce style suivre les directives de l'entreprise, et de façon lisible, voulez-vous de ce code?
Utilisant des instructions if, c'est bien plus lisible.
Personnellement, je n'utilise que l'opérateur ternaire simple et rapide de vrai/faux les conditions--lorsque cela fait sens, ou bien où j'ai besoin de quelque chose "inline".
L'une des deux méthodes sont acceptables, bien que vous pourriez avoir également écrit:
À part que je ne recommanderais jamais à l'aide d'un inline conditionnelle pour multiligne états, il suffit d'utiliser une norme si/d'autre bloc. Compte tenu de la syntaxe que vous avez entré n'est pas valide JS soit, vous pourriez avoir placé plusieurs déclarations dans les méthodes anonymes et patati et, ensuite, vous entrez dans un emmêlés de presque ingérable et inutilement difficile de code. Encore une fois, de la norme, si/d'autre.
Je suis d'accord avec les deux Chris et J-P que:
var a = x ? 1 : 2;
if/else
syntaxe est beaucoup plus familier à la plupart des développeurs. La lisibilité est à faire correspondre les attentes de vos lecteurs, de sorte que la familiarité est important.J'ajouterai que, multi-ligne, les opérateurs conditionnels laissez-vous ouvert à point-virgule erreur d'insertion. Découvrez la JSLint documentation (voir la section sur le "saut de Ligne") pour en savoir plus sur cette. Si vous devez utiliser un multi-ligne opérateur conditionnel, assurez-vous que les opérateurs sont à la fin de chaque ligne. Je voudrais retravailler J-P multi-ligne exemple ainsi:
Comme il a été mentionné, il existe de nombreux guides de style et vous pouvez choisir celui que vous préférez. Certains choix sont plus sujettes à l'erreur que les autres, cependant. Certainement jeter un oeil de près que JSLint documentation; il est très bien pensé guide de style, et si vous adhérez à elle, vous pouvez même utiliser le JSLint outil pour vérifier automatiquement votre code pour des problèmes potentiels.