Los parámetros por defecto (default params) consisten en establecer un valor por defecto a los parámetros de una función, para asegurar que el código se ejecute correctamente en el caso de que no se establezcan los argumentos correspondientes en la invocación de la función.

Cómo era utilizar valores por defecto antes de ES6

Tal como puedes ver en el siguiente código, la función sumar recibe dos parámetros y retorna el valor total. Sin embargo, si alguien no decide poner alguno o todos los parámetros necesarios, pues que el programa no funcionará correctamente.

functionsumar(number1, number2){
return number1 + number2
}

sumar(3,4) // 7
sumar(3)   // NaN
sumar()    // NaN

Antes de ES6, se debía establecer una variable y utilizar el operador OR ( ||) con el valor por defecto necesario. El caracter guion bajo ( _) lo utilizo para diferenciar el parámetro de la función de la variable declarada.

functionsumar(number1, number2){
var _number1 = number1 || 0
var _number2 = number2 || 0

return _number1 + _number2
}

sumar(3,4) // 7
sumar(3)   // 3
sumar()    // 0

Cómo utilizar los parámetros por defecto

Con los parámetros por defectos añadidos en ES6, eliminamos las declaraciones para mejorar la legibilidad y el mantenimiento del código de la siguiente manera:

functionsumar(number1 = 0, number2 = 0){
return number1 + number2
}

sumar(3,4) // 7
sumar(3)   // 3
sumar()    // 0

Puedes utilizar cualquier valor, siempre que sea necesario.

Posición de los parámetros por defecto

Si obligatoriamente necesitas el valor como argumento, ten presente que los parámetros por defecto siempre deben estar en las posiciones finales.

// ❌ Mal
functionsumar(number1 = 0, number2) { ... }
sumar(3)   // number1 = 3 y number2 = undefined

// ✅ Bien
functionsumar(number1, number2 = 0) { ... }
sumar(3)   // number1 = 3 y number2 = 0

Contribución creada por Andrés Guano (Platzi Contributor).