Parámetros de la función JavaScript


Tabla de contenido

    Mostrar tabla de contenidos


Una función de JavaScript no realiza ninguna comprobación valores de parámetros (argumentos).


Parámetros y argumentos de función

Anteriormente en este tutorial, aprendiste que las funciones pueden tener parámetros:

function functionName(parameter1, parameter2, parameter3) {
    // code to be executed
}

Los parámetros de función son los nombres enumerados en la definición de la función.

Los argumentos de función son los valores reales pasado a (y recibido por) la función.


Reglas de parámetros

Las definiciones de funciones de JavaScript no especifican tipos de datos para parámetros.

Las funciones de JavaScript no realizan verificación de tipos en el pasado argumentos.

Las funciones de JavaScript no verifican la cantidad de argumentos recibidos.


Parámetros predeterminados

Si se llama a una función con argumentos faltantes (menos de los declarados), los valores faltantes se establecen en indefinido.

A veces esto es aceptable, pero a veces es mejor asignar un valor predeterminado. valor al parámetro:

Ejemplo

function myFunction(x, y) {
    if (y === undefined) {
    y = 2;
     }

}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>

<p>Setting a default value to a function parameter.</p>
<p id="demo"></p>

<script>
function myFunction(x, y) {
  if (y === undefined) {
    y = 2;
  }  
  return x * y;
}
document.getElementById("demo").innerHTML = myFunction(4);
</script>

</body>
</html>



Valores de parámetros predeterminados

ES6 permite que los parámetros de función tengan valores predeterminados.

Ejemplo

Si y no se pasa o no está definido, entonces y=10.

function myFunction(x, y = 10) {	  return x + y;
}
myFunction(5);

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>Default Parameter Values</h2>
<p>If y is not passed or undefined, then y = 10:</p>

<p id="demo"></p>

<script>
function myFunction(x, y = 10) {
  return x + y;
}
document.getElementById("demo").innerHTML = myFunction(5);
</script>

</body>
</html>

Parámetro de descanso de función

El parámetro rest (...) permite que una función trate un número indefinido de argumentos como una matriz:

Ejemplo

function sum(...args) {
  let sum = 0;
  for (let arg of args) sum += arg;
  return sum;
}

let x = sum(4, 9, 16, 25, 29, 100, 66, 77);

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>The Rest Parameter</h2>

<p>The rest parameter (...) allows a function to treat an indefinite number of arguments as an array:</p>

<p id="demo"></p>

<script>
function sum(...args) {
  let sum = 0;
  for (let arg of args) sum += arg;
  return sum;
}

let x = sum(4, 9, 16, 25, 29, 100, 66, 77);

document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


El objeto de los argumentos

Las funciones de JavaScript tienen un objeto incorporado llamado argumentos. objeto.

El objeto de argumento contiene una matriz de los argumentos utilizados cuando la función fue llamado (invocado).

De esta manera puedes simplemente usar una función para encontrar (por ejemplo) el valor más alto valor en una lista de números:

Ejemplo

x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
  let max = -Infinity;
    for (let i = 0; i < arguments.length; i++) {
      if (arguments[i] > max) {
      max = arguments[i];
      }
    }
    return max;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Functions</h2>
<p>Finding the largest number.</p>
<p id="demo"></p>

<script>
function findMax() {
  let max = -Infinity;
  for(let i = 0; i < arguments.length; i++) {
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
} 
document.getElementById("demo").innerHTML = findMax(4, 5, 6);
</script>

</body>
</html>


O cree una función para sumar todos los valores de entrada:

Ejemplo

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {
  let sum = 0;
    for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
    }
    return sum;
}

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Functions</h2>
<p>Sum of all arguments:</p>
<p id="demo"></p>

<script>
function sumAll() {
  let sum = 0;
  for(let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}
document.getElementById("demo").innerHTML = sumAll(1, 123, 500, 115, 44, 88);
</script>

</body>
</html>

Si se llama a una función con demasiados argumentos (más de los declarados), estos argumentos se pueden alcanzar utilizando el objeto de argumentos.


Los argumentos se pasan por valor

Los parámetros, en una llamada a función, son los argumentos de la función.

Los argumentos de JavaScript se pasan por valor: solo la función llega a conocer los valores, no las ubicaciones del argumento.

Si una función cambia el valor de un argumento, no cambia el valor del parámetro. Valor original.

Los cambios en los argumentos no son visibles (reflejados) fuera de la función.


Los objetos se pasan por referencia

En JavaScript, las referencias a objetos son valores.

Debido a esto, los objetos se comportarán como si fueran pasados por referencia:

Si una función cambia la propiedad de un objeto, cambia el valor original.

Los cambios en las propiedades del objeto son visibles (reflejados) fuera de la función.