al la muy buena explicación de @furoya, te agrego
Cita: Y esta forma de poner el signo de interrogación es algo parecido a un eval?
A la expresión de esa línea se la conoce como operador ternario, la sintásis es
condición ? "resultado si se cumple" : "resultado si no se cumple";
Es una forma abreviada de hacer un condicional, ejemplo
var a = 3;
if (a == 3){
alert('negro');
}else{
alert('rojo');
}
utilizando el o. ternario
var a = 3;
(a == 3)? 'negro': 'rojo';
En expresiones más complejas puede no resultar tan atractivo.
Este artículo extiende más el concepto, uso y rendimiento comparado con tras construcciones para establecer condiciones
http://www.etnassoft.com/2011/04/01/...io-javascript/
SAludos