Usa return
para especificar el valor que la función debe producir como final.
resultado. Cuando el intérprete llega a una sentencia return
, la función que
contiene esa sentencia inmediatamente, y el valor especificado se devuelve
el contexto en el que se llamó a la función:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Una función que devuelve un valor puede tratarse eficazmente como los datos que contiene, similar a una variable:
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
Una sentencia return
sin una expresión finaliza la función y muestra
undefined
const myFunction = function() {
return;
}
myFunction();
> undefined
Debido a que la palabra clave return
indica el final de una función, cualquier código que
sigue no se ejecuta una return
detectada:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Además, el código después de una sentencia return
detectada puede generar una
(pero no es un error) en las funciones consolas de desarrollo:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
Nuevamente, esto solo se aplica a una sentencia return
que se encuentra durante el
la ejecución de la función, no ningún código que siga a una sentencia return
de forma secuencial:
const myFunction = function( myParameter ) {
if( myParameter === undefined ) {
return "This is the result.";
}
return "This is the alternate result.";
}
myFunction();
> "This is the result."
myFunction( true );
> "This is the alternate result."
"Cortocircuito" una función que usa un return
anterior puede permitir una comunicación más concisa
código que una sola sentencia return
al final de una función. Por ejemplo, el
siguiente función determina si un valor pasado es una cadena que contiene cinco
o más caracteres. Si el valor que se pasa no es un literal de cadena, el código que
cuenta los caracteres no es necesario, y la función puede mostrar un false
resultado inmediatamente:
function myFunction( myString ) {
if( typeof myString !== "string" ) {
return false;
}
if( myString.length >= 5 ) {
return true;
} else {
return false;
}
}
myFunction( 100 );
> false
myFunction( "St" );
> false
myFunction( "String." );
> true
Expresiones de la función de flecha
son únicas porque la palabra clave return
está implícita cuando el cuerpo de una función flecha
Contiene una sola expresión y ninguna sintaxis de bloque:
const myFunction = () => 2 + 2;
myFunction();
> 4
Si usas sintaxis de bloque para definir el cuerpo de la función flecha, se crea un elemento return
explícito.
es obligatorio, incluso si el cuerpo de la función solo contiene una sola expresión:
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
Verifica tus conocimientos
¿Para qué se usa return
?