Se ha dicho claramente, aunque no obstante la opinión, que renunciar a los corchetes en una if
declaración de una sola línea no es ideal para el mantenimiento y la legibilidad.
¿Pero qué hay de esto?
if (lemons) { document.write("foo gave me a bar"); }
Está aún más comprimido, y si se expande, las llaves no se olvidarán. ¿Hay problemas evidentes y, de no ser así, cuáles son las consideraciones? Siento que todavía es muy legible, al menos tanto como un operador ternario de todos modos. Me parece que los operadores ternarios no se sugieren tanto debido a la legibilidad, aunque creo que esa conclusión no es tan unánime.
El gemelo malvado en mí quiere sugerir esto, aunque la sintaxis obviamente no está hecha para eso, y probablemente sea solo una mala idea.
(syntax) ? document.write("My evil twin emerges"): "";
javascript
if-statement
David Hobs
fuente
fuente
document.write("My evil twin emerges") if lemons
variable = (condition) ? true-value : false-value;
.) Buena suerte.Respuestas:
He visto el comportamiento de cortocircuito del
&&
operador utilizado para lograr esto, aunque las personas que no están acostumbradas a esto pueden tener dificultades para leer o incluso llamarlo antipatrón:Personalmente, a menudo usaré una sola línea
if
sin corchetes, como este:Si necesito agregar más declaraciones, pondré las declaraciones en la siguiente línea y agregaré corchetes. Como mi IDE hace sangría automática, las objeciones de mantenibilidad a esta práctica son discutibles.
fuente
Lo uso así:
fuente
alert(lemons?"please give me a lemonade":"then give me a beer")
Puede usar este formato, que se usa comúnmente en PHP:
fuente
lemon
.document.write(lemon ? "foo gave me a bar" : "if condition is FALSE");
:)Esta línea es mucho más limpia.
Prefiero esto. espero que ayude a alguien
fuente
puede usar esto,
explicación: si
lemons
existe entonces dame unalert("please give me a lemonade")
else
alert("then give me a beer")
fuente
lemons? alert("please give me a fancy beer with a lemon wedge in it"): alert(please give me a beer")
FTFY// Otro ejemplo simple
fuente
var a = 11; alert(a === 10);
?alert(a === 10 ? "true" : "false")
alert(a===10)
que dijo Manu.Como mucha gente ha dicho, si está buscando una línea 1 real, entonces:
se prefiere. Sin embargo, si estás buscando hacer un if / else, entonces ternary es tu amigo (y también genial):
ADEMÁS:
Sin embargo, vi un ejemplo muy bueno. Grita a @ Peter-Oslson por &&
Por último, no es una declaración if, pero ejecutar cosas en un bucle con map / reduce o Promise.resolve () también es divertido. Grita a @brunettdan
fuente
Como ya se ha indicado, puede usar:
&& estilo
o
estilo sin soporte
retorno de cortocircuito
Sin embargo, si desea utilizar la
if
instrucción de una línea para hacer un cortocircuito en una función, necesitaría usar la versión sin paréntesis de esta manera:como
te dará un
SyntaxError: Unexpected keyword 'return'
fuente
lemons
(si es falsey), solo quieres regresar "foo me dio barra" cuandolemons
es verdad.He visto muchas respuestas con muchos votos defendiendo el uso del operador ternario. El ternario es excelente si a) tiene una opción alternativa yb) está devolviendo un valor bastante simple de una condición simple. Pero...
La pregunta original no tenía una alternativa, y el operador ternario con una sola rama (real) lo obliga a devolver una respuesta precisa.
lemons ? "foo gave me a bar" : "who knows what you'll get back"
Creo que la variación más común es
lemons ? 'foo...' : ''
, y, como sabrá al leer la miríada de artículos para cualquier idioma sobre verdadero, falso, verdadero, falso, nulo, nulo, en blanco, vacío (¿con nuestro sin?), Está entrando un campo minado (aunque un campo minado bien documentado)Tan pronto como cualquier parte del ternario se complique, estará mejor con una forma más explícita de condicional.
Un largo camino para decir que estoy votando
if (lemons) "foo"
.fuente
También se puede hacer usando una sola línea con
while
bucles yif
así:También funciona con
while
bucles.fuente
Ejemplo en funciones de flecha:
En promesas:
De otra manera:
Si es solo un condicional simple, prefiero usar if (valor) siempre que sea posible porque la palabra if al comienzo de la declaración dice más sobre lo que está sucediendo que la parálisis y los signos de interrogación.
fuente
Incluso asignar operación también podemos hacer con corchetes
fuente