w3schools ternarios ternario operator operadores operador multiple javascript ternary-operator

ternarios - Operador ternario taquigrafía Javascript



operadores ternarios php (7)

Sé que en PHP 5.3 en lugar de utilizar esta sintaxis de operador ternario redundante:

startingNum = startingNum ? startingNum : 1

... podemos usar una sintaxis abreviada para nuestros operadores ternarios cuando corresponda:

startingNum = startingNum ?: 1

Y sé sobre el operador ternario en javascript:

startingNum = startingNum ? startingNum : 1

... pero ¿hay una forma abreviada?

¡Gracias chicos!


Las respuestas anteriores son correctas. En JavaScript, la siguiente declaración:

startingNum = startingNum ? otherNum : 1

se puede expresar como

startingNum = otherNum || 1

Otro escenario no cubierto aquí es si desea que el valor devuelva falso cuando no coincida. La abreviatura de JavaScript para esto es:

startingNum = startingNum ? otherNum : 0

Pero puede expresarse como

startingNum = startingNum && otherNum

Solo quería cubrir otro escenario en caso de que otros buscaran una respuesta más general.


Para hacer un ternario como:

boolean_condition ? true_result : false_result

en javascript, puedes hacer:

(boolean_condition && true_result ) || false_result;

Ejemplo:

(true && ''green'') || ''red''; => "green" (false && ''green'') || ''red''; => "red"


Sí hay:

var startingNum = startingNum || 1;

En general, expr1 || expr2 expr1 || expr2 funciona de la siguiente manera (como se menciona en la documentación ):

Devuelve expr1 si se puede convertir a true ; de lo contrario, devuelve expr2 . Por lo tanto, cuando se usa con valores Boolean , || devuelve true si cualquiera de los operandos es true ; si ambos son false , devuelve false .


|| devolverá el primer valor de verdad que encuentre, y por lo tanto se puede usar como un operador coalescente, similar a C # ''s ??

startingNum = startingNum || 1;


startingNum = startingNum || 1

Si tiene una condición con nulo, como

startingNum = startingNum ? startingNum : null

puedes usar ''&&''

startingNum = startingNum && startingNum


var startingNum = startingNum || 1;

En este caso, puede usar el operador OR.


var startingNumber = startingNumber || 1;

Algo así como lo que estás buscando, ¿dónde está predeterminado si no está definido?

var foo = bar || 1; // 1 var bar = 2; foo = bar || 1; // 2

Por cierto, esto funciona para muchos escenarios, incluidos los objetos:

var foo = bar || {}; // secure an object is assigned when bar is absent