En JavaScript, entiendo que return
devolverá algún resultado que una función puede producir y detendrá la ejecución de esa función.
Mi pregunta es sobre aquellos casos en los que la función no devuelve nada. Solo realiza algo.
Principalmente uso JavaScript en el contexto de React y React Native, por lo que mis ejemplos están en React Native.
El primer ejemplo es una función que simplemente elimina algo de AsyncStorage
. Normalmente uso esto cuando un usuario cierra la sesión. ¿Necesito return
en este caso?
export const removeAuthData = async () => { return await AsyncStorage.removeItem('auth'); }
Otro ejemplo es cuando tengo una función que puede actualizar el estado de mi aplicación:
setIsAuthenticated(value) { this.props.actions.setIsAuthenticated(value); }
En estos escenarios, ¿necesito usar return
en mis funciones?
No, en JavaScript estándar, en la parte inferior de una función, si no se usa el valor de retorno;
return
es equivalente areturn <someExpressionWithoutSideEffects>
, que es equivalente a Tenga en cuenta que para aquellos que usan TypeScript, las cosas son un poco diferentes: usar la palabra clave de return
indica que realmente está tratando de transferir un valor de la función a la persona que llama, en cuyo caso, return
o return undefined
no es lo mismo que carecer de un return
. declaración en absoluto.
Dado que JavaScript es un lenguaje débilmente tipificado, el tipo de devolución y el valor de la función dependen completamente del valor de return
.
Por supuesto, si no planea usar los valores devueltos de las funciones, no importa si los return
o no. Aún así, puede ser una elección estilística return
la última declaración o no.
Por último, si return
el resultado de una expresión con un valor undefined
, entonces es completamente indistinguible, sin mirar el cuerpo de la función, ya sea que haya devuelto o no.
TL; DR: No es necesario, pero depende de la elección y preferencia estilística.
No es necesario que devuelva un valor de una función. Tenga en cuenta que las funciones tienen un valor de retorno predeterminado que no está undefined
.