Skip to main content
entrevistas

¿Cuál es la diferencia entre el operador 'rest' y el operador 'spread'?

Autor: Reynaldo Navedo

Publicado: Actualizado:

JavaScript es un lenguaje de programación versátil y poderoso, que permite a los desarrolladores realizar una variedad de tareas con facilidad y eficiencia. Entre las muchas características útiles de JavaScript están los operadores Rest y Spread, introducidos con ES6 (ES2015), que ofrecen nuevas maneras de trabajar con funciones y arrays.


Operador Rest (...)

Definición y Uso

El operador Rest permite a una función aceptar un número indefinido de argumentos como un array. Esto puede ser útil en funciones que pueden ser llamadas con cualquier número de argumentos.

Ejemplo de Código

function sumar(...numeros) { return numeros.reduce((total, num) => total + num, 0); } console.log(sumar(1, 2, 3, 4)); // Salida: 10 

En este ejemplo, la función sumar utiliza el operador Rest para reunir todos los argumentos en un array llamado numeros, y luego utiliza el método reduce para sumarlos.


Operador Spread (...)

Definición y Uso

El operador Spread permite expandir un array, un objeto o una cadena en lugares donde se esperan cero o más argumentos (para llamadas a funciones) o elementos (para arrays literales), o clave-valor (para objetos literales).

Ejemplo de Código

const arr1 = [1, 2, 3]; const arr2 = [...arr1, 4, 5, 6]; console.log(arr2); // Salida: [1, 2, 3, 4, 5, 6] 

En este ejemplo, el operador Spread se usa para expandir el arr1 dentro de un nuevo array, arr2.


Diferencias Clave

  • Contexto de Uso:Rest: Se usa en la declaración de función para agrupar argumentos en un array.
  • Spread: Se usa para expandir arrays, objetos o cadenas en lugares donde se esperan argumentos, elementos o pares clave-valor.
  • Sintaxis:Rest: Se utiliza en el parámetro de una función: function foo(...args) {}.
  • Spread: Se utiliza en llamadas a funciones, arrays o expresiones de objeto: const newArr = [...oldArr].
  • Objetivo:Rest: Agrupa los elementos.
  • Spread: Expande los elementos.


Conclusión

Tanto el operador Rest como el Spread utilizan la misma sintaxis (...), pero se utilizan en contextos diferentes y tienen propósitos diferentes. El entendimiento de estos operadores puede ayudar a los desarrolladores a escribir código más limpio y eficiente en JavaScript.

Comparte este contenido