Lección 11: Arrow

Las funciones de flecha (arrow) es una alternativa compacta de las funciones tradicionales. No son para todas las situaciones pero ayuda a simplificar la sintaxis.

const listaDeNumeros = [1, 2, 3, 4];

const listaDeNumerosMas10 = listaDeNumeros.map(numero => numero + 10);

console.log(listaDeNumerosMas10);

// [11, 12, 13, 14]

Si deseas que no se comporte como una función anónima puedes guardarla en una variable.

const aumentar10 = numero => numero + 10;

console.log(aumentar10(5));

// 15

Su estructura varía dependiendo de su número de argumentos o líneas en su cuerpo.

Sin argumento

() => cuerpo

Su equivalencia sería la siguiente.

function () {
    cuerpo
}

Por ejemplo.

setTimeout(() => console.log("He tardado 2s en aparecer"), 2000)

Un argumento

argumento1 => cuerpo

Su equivalencia sería la siguiente.

function (argumento1) {
    cuerpo
}

Un ejemplo sería el ejemplo del principio.

numero => numero + 10

O también.

function (numero) {
    return numero + 10;
}

Varios argumentos

(argumento1, argumento2, argumento3) => cuerpo

Su equivalencia sería la siguiente.

function (argumento1, argumento2, argumento3) {
    cuerpo
}

Un ejemplo.

const total = [10, 20, 30].reduce((total, numero) => total + numero);

console.log(total);

// 60

O también.

const total = [10, 20, 30].reduce(function (total, numero) {
    return total +  numero;
})

console.log(total);

// 60

Varias líneas en cuerpo

() => {
    cuerpo
    return cuerpo
}

Su equivalencia sería la siguiente.

function () {
    cuerpo
    return cuerpo
}

Un ejemplo.

setInterval(() => {
    const miFecha = new Date();
    console.log(miFecha.getSeconds());
}, 1000);

// 34
// 35
// ...

O también.

setInterval(function() {
    const miFecha = new Date();
    console.log(miFecha.getSeconds());
}, 1000);

// 34
// 35
// ...
¿Te ha gustado? Comprame un café

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario