Es el operador conditional, es equivalente a algo como esto:
if (pattern.Gotoccurance.score != null) {
pattern.Gotoccurance.score;
} else {
'0';
}
Pero creo que una sentencia de asignación no se encuentra en el código que envió, así:
var score = pattern.Gotoccurance.score !=null ? pattern.Gotoccurance.score : '0';
La variable score
se asignará si pattern.Gotoccurance.score
no es nulo:
var score;
if (pattern.Gotoccurance.score != null) {
score = pattern.Gotoccurance.score;
} else {
score = '0';
}
Un patrón común de hacer este tipo de tareas 'valor predeterminado' en JavaScript es utilizar el operador lógico OR (||
):
var score = pattern.Gotoccurance.score || '0';
se le asignará el valor de pattern.Gotoccurance.score
a la variable score
sólo si ese valor no es falsy (los valores de faly son false
, null
, undefined
, 0
, cadena de longitud cero o NaN
).
De lo contrario, si es falso '0'
serán asignados.
Actualización: La actuación será equivalente, usted debe centrarse en la legibilidad, trato de utilizar el operador ternario en las expresiones que son muy simples, y también puede mejorar el formato, dividirlo en dos líneas para hacer más legible:
var status = (age >= 18) ? "adult"
: "minor";
pregunta relacionada:
Oh, ok gr8, ¿por qué necesita este tipo de codificación, esta es la versión más eficiente o simplemente acortada con la misma eficacia? –
¿El tiempo de interpretación afecta el rendimiento? – barkmadley
Este es el tipo de respuesta que hace la diferencia. No hay más dudas cuando se trata de JavaScript y el operador ternario. Bien hecho CMS. –