Estoy tratando de usar esto y parece que no funciona. Supongo que simplemente no es una opción, pero quiero confirmarlo. Es esto valido?¿Puedo omitir el resto en una declaración javascript en línea?
(if_it_is) ? thats_cool();
Estoy tratando de usar esto y parece que no funciona. Supongo que simplemente no es una opción, pero quiero confirmarlo. Es esto valido?¿Puedo omitir el resto en una declaración javascript en línea?
(if_it_is) ? thats_cool();
Puede utilizar &&
allí:
if_it_is && thats_cool();
Es básicamente igual a:
if (your_expression){
thats_cool();
}
Agradable. Puedes hacer una coalescencia nula con o. var variable2 = variable1 || 'coalesceVal'; – Jason
esto es inteligente, pero no me parece muy intuitivo. No lee bien. Un signo de interrogación, entiendo. Eso no. – evan
@ user1048967: Las personas que vienen de otros idiomas lo encuentran difícil, pero esto es en realidad la belleza y la precisión de javascript que necesita para aprender. Al principio, con un aspecto extraño para todos, como yo mismo, estaba confundido, pero ahora lo estoy usando con eficacia. – Sarfraz
No se puede lograr que el uso del operador ternario, pero puedo uso la naturaleza de cortocircuito de &&
para hacer lo que quiera.
(if_it_is) && thats_cool();
No, no puede. ?:
es un operador ternario y DEBE tener los tres de sus operandos.
No, no puedes. No es una "declaración if en línea", es el operador ternario , y eso es, bueno ... ternario.
(if_it_is) ? thats_cool() : null;
Ya que no parecen estar interesados en el valor de retorno de la operación, usted podría escribir:
if (if_it_is) thats_cool();
sin embargo. Eso también sería mejor estilo que usar un ternario.
Olvida el tercer componente. Debería ser algo así:
(if_it_is) ? thats_cool() : not_too_cool();
El todo sentido es:
condition ? do_something_if_condition_is_true : do_something_if_condition_is_false;
No, no es válido.
El operador condicional toma la forma x ? y : z
. El tercer operando no es como el else
en un if
, siempre tiene que estar allí.
Lo que intentas usar es un Ternary Operator. Te estás perdiendo la parte más de eso.
Se podría hacer algo como:
(if_it_is) ? thats_cool() : function(){};
o
(if_it_is) ? thats_cool() : null;
O, como otros han sugerido, puede evitar el ternario si no se preocupan por la otra.
if_it_is && thats_cool();
En JavaScript, así como en la mayoría de los idiomas, estas comprobaciones lógicas pasan de izquierda a derecha. Por lo tanto, primero verá si if_it_is
es 'trusy' value (true
, 1
, una cadena que no sea ''
, etc.). Si eso no pasa, entonces no hace el resto de la declaración. Si pasa, ejecutará thats_cool
como la siguiente verificación en la lógica.
Piense en ello como la parte dentro de una declaración if. Sin el si. Así que es una especie de taquigrafía de
if (if_it_is && thats_cool()) { }
No, no es opcional. Use un operador binario en su lugar (&&) siempre que 'thats_cool()' devuelva un valor que se evalúe como 'verdadero'. –
No. Necesita tener ':' y algún valor siguiéndolo. Si lo desea, puede crear una función llamada 'do_nothing()' que ... bueno, no hace nada. – Edwin
user1048967, que se llama 'if() {}'. – Dykam