ES6: parámetros por defecto y parámetros REST

En esta entrada, vamos a ver varias novedades que presenta ES6. En las entradas anteriores, hemos visto las nuevas formas que introduce para declarar variables y las funciones flecha. En esta ocasión, veremos cómo declarar parámetros por defecto en las funciones y, también, veremos los parámetros REST y el operador SPREAD.

Parámetros por defecto

En la versión tradicional de JS para darle a un parámetro un valor por defecto, lo que se hacía era comprobar si era undefined y si era, se le ponía el valor por defecto que queríamos.

Ahora, con ES6, no hace falta que hagamos eso, porque se pueden poner valores por defecto directamente en los argumentos de la declaración de la función.

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-parametros-por-defecto

En el ejemplo anterior, se le está asignando una cadena de texto al parámetro como valor por defecto, pero se le podría asignar un array, un boleano, un número, etc.

 

Parámetros REST

Cuando en JS tradicional, queríamos pasarle un número indeterminado de paramétros a una función, para recogerlos desde dentro de la función utilizábamos el objeto arguments. Pero este objeto tiene ciertos problemas: no es un array real, por tanto, no tenemos acceso a ciertos métodos de Array y, además, recoge todos los argumentos de la función.

Para solventar esto, en ES6, existen los parámetros REST. Se declaran poniendo delante del último parámetro (puntos suspensivos) y lo que hará será coger todos los parámetros extra que tenga la función y transformarlos en un array real (no como arguments):

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Parametros-REST

 

Operador SPREAD

El operador SPREAD lo que nos permite es transformar un array a una lista de parámetros, es decir, hace lo contrario que los parámetros REST. Podríamos decir que mientras que REST agrupa todos los elementos en uno solo elemento, SPREAD los desagrupa en múltiples.

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Operador-SPREAD

Como podemos ver en el ejemplo, también se puede utilizar para agrupar o copiar arrays.

-

 


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Deja una respuesta

  Acepto la política de privacidad