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 atrue
; de lo contrario, devuelveexpr2
. Por lo tanto, cuando se usa con valoresBoolean
,||
devuelvetrue
si cualquiera de los operandos estrue
; si ambos sonfalse
, devuelvefalse
.
||
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