Parámetros de función de JavaScript

Aprenda los conceptos básicos de los parámetros de funciones de JavaScript

Una función puede aceptar uno o más parámetros.

const dosomething = () => {
  //do something
}

const dosomethingElse = foo => { //do something }

const dosomethingElseAgain = (foo, bar) => { //do something }

Empezando conES6 / ES2015, las funciones pueden tener valores predeterminados para los parámetros:

const dosomething = (foo = 1, bar = 'hey') => {
  //do something
}

Esto le permite llamar a una función sin completar todos los parámetros:

dosomething(3)
dosomething()

ES2018introdujo comas finales para los parámetros, una función que ayuda a reducir los errores debidos a la falta de comas al mover los parámetros (por ejemplo, mover el último en el medio):

const dosomething = (foo = 1, bar = 'hey',) => {
  //do something
}

dosomething(2, ‘ho!’)

También está bienllamadasus funciones con una coma al final del último parámetro:

dosomething(2, 'ho!',)

Puede envolver todos sus argumentos en una matriz y usar eloperador de propagaciónal llamar a la función:

const dosomething = (foo = 1, bar = 'hey') => {
  //do something
}
const args = [2, 'ho!']
dosomething(...args)

Con muchos parámetros, recordar el orden puede resultar difícil. Usando objetos, la desestructuración permite mantener los nombres de los parámetros:

const dosomething = ({ foo = 1, bar = 'hey' }) => {
  //do something
  console.log(foo) // 2
  console.log(bar) // 'ho!'
}
const args = { foo: 2, bar: 'ho!' }
dosomething(args)

Las funciones ahora admiten parámetros predeterminados:

const foo = function(index = 0, testing = true) { /* ... */ }
foo()

Los valores de parámetros predeterminados se introdujeron en ES2015 y se implementan ampliamente en los navegadores modernos.

Esto es undoSomethingfunción que aceptaparam1.

const doSomething = (param1) => {

}

Podemos agregar un valor predeterminado paraparam1si la función se invoca sin especificar un parámetro:

const doSomething = (param1 = 'test') => {

}

Esto también funciona para más parámetros, por supuesto:

const doSomething = (param1 = 'test', param2 = 'test2') => {

}

¿Qué pasa si tiene un objeto único con valores de parámetros en él?

Érase una vez, si teníamos que pasar un objeto de opciones a una función, para tener valores predeterminados de esas opciones si una de ellas no estaba definida, tenía que agregar un poco de código dentro de la función:

const colorize = (options) => {
  if (!options) {
    options = {}
  }

const color = (‘color’ in options) ? options.color : ‘yellow’ … }

Con la desestructuración de objetos, puede proporcionar valores predeterminados, lo que simplifica mucho el código:

const colorize = ({ color = 'yellow' }) => {
  ...
}

Si no se pasa ningún objeto al llamar a nuestrocolorizefunción, de manera similar podemos asignar un objeto vacío por defecto:

const spin = ({ color = 'yellow' } = {}) => {
  ...
}

Más tutoriales de js: