(function(){
Math.sqrt(25) == 5 ? return true : return false;
})();
Solo quiero retornar true
si la raíz de 25
da 5
, y si no retornar false
.
(function(){
Math.sqrt(25) == 5 ? return true : return false;
})();
Solo quiero retornar true
si la raíz de 25
da 5
, y si no retornar false
.
El return lo debes poner al principio de la siguiente manera:
(function(){
return (Math.sqrt(25)==5 ? true : false);
})();
El error se soluciona extrayendo el return
de las opciones del operador ternario, y poníendolo fuera devolviendo el resultado del operador ternario (como ya te ha respondido @JavierPintor en la otra respuesta).
La causa del error es debida a que el operador ternario, al ser un operador, no es exactamente como una sentencia condicional if
. Como es un operador tiene que devolver un valor, obteniendo dicho valor de una de las opciones posibles a ambos lados de :
. Estas posibles opciones deben ser expresiones (combinación de operadores y operandos) que serán evaluadas a un valor en caso de ser elegidas dependiendo del resultado de la condición. Por lo tanto, como return
no forma una expresión que se evalúe a un valor, no es admitida.
Así es la solución:
(function() {
return Math.sqrt(25) == 5 ? true : false;
})();
Pero, en los casos como éste, donde devuelves true
o false
dependiendo del resultado de una comparación, lo óptimo es que devuelvas directamente el resultado de la comparación que se evalúa a true
o false
. Así te evitas el operador ternario:
(function() {
return Math.sqrt(25) == 5;
})();