JavaScript
Tutorial JavaScript: Funciones flecha
JavaScript funciones flecha: definición y uso. Domina la definición y uso de funciones flecha en JavaScript con ejemplos prácticos.
Aprende JavaScript GRATIS y certifícateLas funciones flecha en JavaScript, también conocidas como "arrow functions", son una forma más concisa y elegante de definir funciones en el lenguaje. Introducidas en la versión de ECMAScript 2015 (ES6), las funciones flecha ofrecen una sintaxis más corta en comparación con las funciones regulares y ofrecen otras ventajas, como el uso de un léxico this
.
En términos de sintaxis, las funciones flecha pueden ser reconocidas por su característica flecha =>
. A continuación, se presenta una comparación entre una función regular y una función flecha:
Función regular:
function sumar(a, b) {
return a + b;
}
Función flecha:
const sumar = (a, b) => {
return a + b;
};
Como se observa, en lugar de utilizar la palabra clave function
, se utiliza una flecha =>
entre los parámetros y el cuerpo de la función.
Las funciones flecha pueden ser utilizadas en diferentes situaciones, como en el caso de las funciones anónimas que son pasadas como argumentos a otras funciones. Por ejemplo, al utilizar la función map()
para transformar un array:
Función regular:
const numeros = [1, 2, 3, 4];
const cuadrados = numeros.map(function (numero) {
return numero * numero;
});
Función flecha:
const numeros = [1, 2, 3, 4];
const cuadrados = numeros.map(numero => {
return numero * numero;
});
Sintaxis más concisa
Para funciones que solo retornan un valor sin incluir instrucciones adicionales, las funciones flecha ofrecen una sintaxis más corta utilizando una expresión implícita:
const sumar = (a, b) => a + b;
const numeros = [1, 2, 3, 4];
const cuadrados = numeros.map(numero => numero * numero); // [1, 4, 9, 16]
En estos ejemplos, se omite el uso de las llaves {}
y la palabra clave return
. El resultado de la expresión es retornado automáticamente.
En JavaScript, es posible omitir los paréntesis al definir una función flecha que tenga un único argumento. Esta característica permite simplificar aún más la sintaxis de las funciones flecha, especialmente cuando se utilizan para funciones breves o anónimas. Sin embargo, si la función flecha requiere más de un argumento, es necesario incluir los paréntesis para delimitarlos.
const cuadrado = x => x * x;
// Equivalente a:
// const cuadrado = (x) => x * x;
const numeros = [1, 2, 4];
const cuadrados = numeros.map(x => x * x); // [1, 4, 16]
this propio
Otra ventaja importante de las funciones flecha es que no tienen su propio this
, es decir, el valor de this
dentro de una función flecha es el mismo que el de la función que la contiene. Esto puede ser útil en situaciones donde se desea que this
se refiera al contexto externo a la función y no al contexto de la propia función.
Por ejemplo, en un objeto que tiene un método para mostrar información utilizando la función setTimeout
:
Función regular:
const objeto = {
nombre: 'Objeto',
mostrarNombre: function () {
setTimeout(function () {
console.log(this.nombre); // Esto no funcionará correctamente
}, 1000);
}
};
En este caso, el valor de this
dentro de la función pasada a setTimeout
es diferente al this
del método mostrarNombre
. Para solucionar este problema, en las versiones anteriores de JavaScript se utilizaba una variable adicional para almacenar el valor de this
:
Función regular con solución al problema de this:
const objeto = {
nombre: 'Objeto',
mostrarNombre: function () {
const self = this;
setTimeout(function () {
console.log(self.nombre); // Esto funcionará correctamente
}, 1000);
}
};
Función flecha para solucionar el problema de this:
const objeto = {
nombre: 'Objeto',
mostrarNombre: function () {
setTimeout(() => {
console.log(this.nombre); // Esto funcionará correctamente
}, 1000);
}
};
En resumen, las funciones flecha en JavaScript son una adición útil al lenguaje que ofrecen una sintaxis más concisa y fácil de escribir, y facilitan el manejo del contexto de this
. Esto las hace ideales para su uso en funciones anónimas y breves que requieran de un contexto específico.
Ejercicios de esta lección Funciones flecha
Evalúa tus conocimientos de esta lección Funciones flecha con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones flecha
Polimorfismo
Array
Transformación con map()
Introducción a JavaScript
Gestor de tareas con JavaScript
Manipulación DOM
Funciones
Funciones flecha
Async / Await
Creación y uso de variables
Excepciones
Promises
Funciones cierre (closure)
Herencia
Herencia
Estructuras de control
Selección de elementos DOM
Modificación de elementos DOM
Filtrado con filter() y find()
Funciones cierre (closure)
Funciones
Mapas con Map
Reducción con reduce()
Callbacks
Manipulación DOM
Promises
Async / Await
Eventos del DOM
Async / Await
Promises
Filtrado con filter() y find()
Callbacks
Creación de clases y objetos Restaurante
Reducción con reduce()
Filtrado con filter() y find()
Reducción con reduce()
Conjuntos con Set
Herencia de clases
Eventos del DOM
Clases y objetos
Modificación de elementos DOM
Mapas con Map
Funciones
Tipos de datos
Clases y objetos
Array
Conjuntos con Set
Array
Encapsulación
Clases y objetos
Uso de operadores
Uso de operadores
Estructuras de control
Excepciones
Transformación con map()
Funciones flecha
Selección de elementos DOM
Encapsulación
Mapas con Map
Creación y uso de variables
Polimorfismo
Tipos de datos
Estructuras de control
Todas las lecciones de JavaScript
Accede a todas las lecciones de JavaScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Javascript
Sintaxis
Tipos De Datos
Sintaxis
Variables
Sintaxis
Operadores
Sintaxis
Estructuras De Control
Sintaxis
Funciones
Sintaxis
Funciones Cierre (Closure)
Sintaxis
Funciones Flecha
Programación Funcional
Filtrado Con Filter() Y Find()
Programación Funcional
Transformación Con Map()
Programación Funcional
Reducción Con Reduce()
Programación Funcional
Clases Y Objetos
Programación Orientada A Objetos
Excepciones
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Array
Estructuras De Datos
Conjuntos Con Set
Estructuras De Datos
Mapas Con Map
Estructuras De Datos
Manipulación Dom
Dom
Selección De Elementos Dom
Dom
Modificación De Elementos Dom
Dom
Eventos Del Dom
Dom
Callbacks
Programación Asíncrona
Promises
Programación Asíncrona
Async / Await
Programación Asíncrona
Certificados de superación de JavaScript
Supera todos los ejercicios de programación del curso de JavaScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender qué son las funciones flecha y cómo se definen.
- Conocer las ventajas y usos de las funciones flecha en comparación con las funciones regulares.
- Aprender a utilizar las funciones flecha en diversas situaciones, incluyendo funciones anónimas y funciones con un solo valor de retorno.
- Entender el concepto de léxico
this
y cómo las funciones flecha simplifican su manejo en comparación con las funciones regulares.