Il a été clairement dit, bien que l'opinion n'en soit pas moins, que le fait de renoncer aux accolades sur une seule if
déclaration de ligne n'est pas idéal pour la maintenabilité et la lisibilité.
Mais qu'en est-il?
if (lemons) { document.write("foo gave me a bar"); }
Il est encore plus compressé et s'il est étendu, les accolades ne seront pas oubliées. Y a-t-il des problèmes flagrants et sinon, quelles sont les considérations? J'ai l'impression que c'est toujours très lisible, au moins autant qu'un opérateur ternaire de toute façon. Il me semble que les opérateurs ternaires ne sont pas autant suggérés en raison de la lisibilité, même si j'ai l'impression que cette conclusion n'est pas aussi unanime.
Le jumeau maléfique en moi veut suggérer cela, bien que la syntaxe ne soit évidemment pas faite pour ça, et c'est probablement juste une mauvaise idée.
(syntax) ? document.write("My evil twin emerges"): "";
la source
document.write("My evil twin emerges") if lemons
variable = (condition) ? true-value : false-value;
.) Bonne chance.Réponses:
J'ai vu le comportement de court-circuit de l'
&&
opérateur utilisé pour atteindre cet objectif, bien que les personnes qui ne sont pas habituées à cela puissent avoir du mal à lire ou même à appeler cela un anti-modèle:Personnellement, j'utilise souvent une seule ligne
if
sans crochets, comme ceci:Si j'ai besoin d'ajouter plus de déclarations, je mettrai les déclarations sur la ligne suivante et ajouter des crochets. Étant donné que mon IDE fait une indentation automatique, les objections de maintenabilité à cette pratique sont sans objet.
la source
Je l'utilise comme ceci:
la source
alert(lemons?"please give me a lemonade":"then give me a beer")
Vous pouvez utiliser ce format, qui est couramment utilisé en PHP:
la source
lemon
.document.write(lemon ? "foo gave me a bar" : "if condition is FALSE");
:)Cette ligne est beaucoup plus propre.
Je préfère ça. j'espère que ça aide quelqu'un
la source
peut l'utiliser,
explication: s'il
lemons
existe, donnez-moi unalert("please give me a lemonade")
else
alert("then give me a beer")
la source
lemons? alert("please give me a fancy beer with a lemon wedge in it"): alert(please give me a beer")
FTFY// Un autre exemple simple
la source
var a = 11; alert(a === 10);
?alert(a === 10 ? "true" : "false")
alert(a===10)
comme Manu l'a dit.Comme beaucoup de gens l'ont dit, si vous cherchez une vraie ligne si alors:
est préféré. Cependant, si vous cherchez à faire un if / else, le ternaire est votre ami (et aussi super cool):
AUSSI:
Cependant, j'ai vu un exemple très cool. Remerciements à @ Peter-Oslson pour &&
Enfin, ce n'est pas une instruction if, mais exécuter des choses en boucle avec une carte / réduire ou Promise.resolve () est aussi amusant. Cris à @brunettdan
la source
Comme cela a déjà été dit, vous pouvez utiliser:
&& style
ou
style sans support
retour de court-circuit
Si, cependant, vous souhaitez utiliser l'
if
instruction d' une ligne pour court-circuiter une fonction, vous devez utiliser la version sans support comme suit:comme
vous donnera un
SyntaxError: Unexpected keyword 'return'
la source
lemons
(si c'est falsey) - vous voulez seulement retourner "foo m'a donné la barre" quandlemons
c'est vrai.J'ai vu de nombreuses réponses avec de nombreux votes préconisant l'utilisation de l'opérateur ternaire. Le ternaire est parfait si a) vous avez une option alternative et b) vous retournez une valeur assez simple à partir d'une condition simple. Mais...
La question d'origine n'avait pas d'alternative, et l'opérateur ternaire avec une seule branche (réelle) vous oblige à renvoyer une réponse confectionnée.
lemons ? "foo gave me a bar" : "who knows what you'll get back"
Je pense que la variation la plus courante est
lemons ? 'foo...' : ''
, et, comme vous le saurez en lisant la myriade d'articles pour toutes les langues sur vrai, faux, véridique, falsey, nul, nul, vide, vide (avec ou sans?), Vous entrez un champ de mines (bien qu'un champ de mines bien documenté.)Dès qu'une partie du ternaire se complique, vous êtes mieux avec une forme plus explicite de conditionnel.
Un long chemin pour dire que je vote pour
if (lemons) "foo"
.la source
Cela peut également être fait en utilisant une seule ligne avec des
while
boucles etif
comme ceci:Il fonctionne également avec des
while
boucles.la source
Exemple dans les fonctions fléchées:
En promesses:
Autrement:
Si c'est juste un conditionnel simple, je préfère utiliser if (valeur) autant que possible parce que le mot if au début de la déclaration en dit plus sur ce qui se passe que les paranthèses et les points d'interrogation.
la source
Même attribuer le fonctionnement, nous pouvons également le faire avec des supports ronds
la source