Omitir la segunda expresión cuando se utiliza la taquigrafía if-else
¿ Puedo escribir la if else
taquigrafía sin else
?
var x=1;
x==2 ? dosomething() : doNothingButContinueCode();
He notado que poner null
para el resto funciona (pero no tengo idea de por qué o si es una buena idea).
Editar: Algunos de ustedes parecen desconcertados por qué me molestaría en intentar esto. Tenga la seguridad de que es pura curiosidad. Me gusta jugar con JavaScript.
Lo que tenemos es un uso bastante inusual del operador ternario . Generalmente se usa como una expresión, no como una declaración, dentro de alguna otra operación, por ejemplo:
var y = (x == 2 ? "yes" : "no");
Entonces, para facilitar la lectura (porque lo que estás haciendo es inusual) y porque evita el "más" que no deseas, sugeriría:
if (x==2) doSomething();
Esta también es una opción:
x==2 && dosomething();
dosomething()
solo se llamará si x==2
se evalúa como verdadero. Esto se llama cortocircuito .
No se usa comúnmente en casos como este y realmente no deberías escribir código como este. Recomiendo este enfoque más simple:
if(x==2) dosomething();
Debes escribir código legible en todo momento; Si le preocupa el tamaño del archivo, simplemente cree una versión minimizada con la ayuda de uno de los muchos compresores JS. (por ejemplo, el compilador de cierre de Google )