Curso javascript nivel medio
Las arrow functions (funciones flecha) son una forma concisa de escribir funciones en JavaScript. Fueron introducidas en ES6 (ECMAScript 2015) y son especialmente útiles cuando necesitas escribir funciones cortas y claras.
¿Qué son las Arrow Functions?
Una arrow function es una función que se define usando la sintaxis de flecha (=>). Es más corta que la sintaxis tradicional de función y tiene algunas diferencias importantes en cómo maneja el contexto de this.
Sintaxis básica:
Función tradicional:
1// Función tradicional 2function suma(a, b) { 3 return a + b; 4}
Arrow function:
1// Arrow function 2const suma = (a, b) => { 3 return a + b; 4};
Arrow function con return implícito:
1// Arrow function con una sola expresión (con return implícito) 2const suma = (a, b) => a + b;
Características de las Arrow Functions
-
Sintaxis más concisa:
- Las arrow functions son más cortas y claras, lo que hace que el código sea más fácil de leer.
- Si la función tiene un solo argumento, puedes omitir los paréntesis alrededor del argumento.
- Si la función tiene una sola expresión en el cuerpo, puedes omitir las llaves
{}y elreturnse hace implícito.
Ejemplo:
1const cuadrado = x => x * x; 2console.log(cuadrado(5)); // Muestra 25Salida de Consola!: 25
En este ejemplo:
x => x * xes una función flecha que toma un argumentoxy devuelvex * x.- No se usan llaves
{}nireturnporque la función tiene una sola expresión.
-
Sin
thispropio:- Las arrow functions no tienen su propio
this. En lugar de eso, heredan el valor dethisdel contexto en el que se definen. - Esto es útil cuando trabajas con funciones dentro de objetos o clases, ya que evita problemas con el contexto de
this.
Ejemplo:
1const objeto = { 2 nombre: "Juan", 3 saludar: function() { 4 setTimeout(() => { 5 console.log(`Hola, ${this.nombre}`); 6 }, 1000); 7 } 8}; 9 10objeto.saludar(); // Muestra "Hola, Juan" después de 1 segundoSalida de Consola!: Hola, Juan
En este ejemplo:
- La arrow function dentro de
setTimeoutheredathisdel métodosaludar. - Esto asegura que
this.nombrese refiere alnombredel objeto, incluso dentro de la función retrasada.
- Las arrow functions no tienen su propio
-
No aptas para métodos de objetos:
- Dado que las arrow functions no tienen su propio
this, no se deben usar como métodos de objetos que necesitan referirse athisdentro del método. - Usa funciones tradicionales para métodos que necesitan su propio
this.
Ejemplo:
1const persona = { 2 nombre: "Ana", 3 saludar: () => { 4 console.log(`Hola, ${this.nombre}`); 5 } 6}; 7 8persona.saludar(); // Muestra "Hola, undefined" porque `this` no se refiere al objeto `persona`Salida de Consola!: Hola, undefined
En este ejemplo:
this.nombreno funciona como se espera porque la arrow function heredathisdel contexto global, no del objetopersona.
- Dado que las arrow functions no tienen su propio
Resumen
- Arrow functions son una forma más corta y clara de definir funciones en JavaScript.
- Sintaxis:
(argumentos) => expresióno{ cuerpo de la función }. - No tienen su propio
this: Heredanthisdel contexto en el que se definen, lo que evita problemas comunes conthis. - No se deben usar como métodos en objetos que necesitan referirse a
this.
Las arrow functions son especialmente útiles para escribir funciones pequeñas y sencillas, y son una parte importante del JavaScript moderno.
- Loading...
Crea dos funciones utilizando arrow functions:
multiplyByTwo, que tome un número como argumento y lo multiplique por 2.getLength, que tome una cadena como argumento y devuelva su longitud.
Ejemplos:
multiplyByTwo(4)debe devolver8getLength("JavaScript")debe devolver10
Loading...