ES6 default parameters

¿Que son los default parameters?

EcmaScript 6 además de facilitar el trabajo al desarrollador, implementa funcionalidades que proporcionan una mayor potencia y fiabilidad a nuestro código.

Mi objetivo es pasar por todas ellas, empezando por los default parameters que son, en mi opinión, el concepto menos complejo .

Los default parameters, nos permiten pasar el numero de parámetros que queramos en la llamada a una función, a pesar de que no coincida con el número de parámetros que hemos utilizado en la declaración de la misma.

Evitaríamos con ello comportamientos anómalos, si por ejemplo en la llamada a la función espera recibir dos parámetros y solo le pasamos uno, veamos:

function sumNoDefault(num1,num2){
  console.log(num1+num2);
}
sumNoDefault(2);

Esto nos devolvería un maravilloso…

¿Como lo evitamos?, empecemos por como se hacía antes de ES6, de manera mucho mas manual y trabajando la lógica en el cuerpo de la función, verificando el número de argumentos y pasándole un argumento por defecto en una evaluación ternaria.

function sum() {
  num1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
  num2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  return console.log(num1 + num2);
};

Ok, ¿Como lo haríamos con ES6?

ES6 nos evita los bloques que asignaban un valor por defecto y capturaban la asuncecia argumentos.

Solo hay que declarar la funcion con los valores por defecto en los argumentos y Js ES6 por debajo hace la magia.

function sum (num1= 0, num2= 0){
console.log(num1+num2);
}

Si queremos meternos un poquito más en harina podemos usar una Arrow function, dejando un código mas limpio y escueto:

const sum = (num1= 0, num2= 0)=>console.log(num1+num2);

Pero eso da para un post mucho más extenso, que haré, no sin antes pasar por los Rest parameters.

33 Claps