Parámetros de funciones de JavaScript
Un JavaScript function
no realiza ninguna comprobación de los valores de los parámetros (argumentos).
Parámetros y argumentos de la función
Anteriormente en este tutorial, aprendió 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 pasados (y recibidos) 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 la verificación de tipos en los argumentos pasados.
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
undefined
.
A veces esto es aceptable, pero a veces es mejor asignar un valor predeterminado al parámetro:
Ejemplo
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 permite valores de parámetros predeterminados en la declaración de la función:
function myFunction(x, y = 2) {
// function code
}
El objeto Argumentos
Las funciones de JavaScript tienen un objeto incorporado llamado objeto de argumentos.
El objeto de argumento contiene una matriz de los argumentos utilizados cuando se llamó (invocó) a la función.
De esta manera, simplemente puede usar una función para encontrar (por ejemplo) el valor más alto 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;
}
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;
}
Si se llama a una función con demasiados argumentos (más de los declarados), se puede llegar a estos argumentos usando el objeto arguments .
Los argumentos se pasan por valor
Los parámetros, en una llamada de función, son los argumentos de la función.
Los argumentos de JavaScript se pasan por valor : la función solo conoce los valores, no las ubicaciones de los argumentos.
Si una función cambia el valor de un argumento, no cambia el valor original del parámetro.
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.