Primero demos un ejemplo. La función de esta función es devolver la suma de los elementos de la matriz
. suma var = 0; for(var i = 0,aLength = arr.length;i < aLength;i++) { suma += arreglo[i]; } return sum; }
Hay un espacio después de la palabra clave function
. sumArray
es el nombre de la función. Su convención de nomenclatura es la misma que la de los nombres de variables: solo puede contener letras, números, guiones bajos y signos de dólar. un número y no puede ser una palabra clave.
Los parámetros entre paréntesis, también llamados parámetros formales , solo requieren el nombre del parámetro. Los parámetros pueden ser 0
, 1
o más, separados por ,
{}
contiene el cuerpo de la función . Contiene una o más declaraciones. El cuerpo de la función se utiliza para implementar la función de la función.
La palabra clave return
va seguida del valor de retorno de la función, y la función tampoco puede tener ningún valor de retorno. Una vez que la función termine de ejecutarse, la declaración " return
saldrá de la ejecución y la declaración debajo de return
ya no se ejecutará . El valor de retorno es la salida de la función.
Una función definida de esta manera se puede llamar antes y después de la definición de la función , siempre que la función y la declaración que llama a la función estén en el mismo archivo fuente.
para definir una función usando una expresión, que consiste en usar una expresión de asignación para asignar la función a una variable . En realidad, esto es tratar la función como una variable. En este momento, la función puede tener nombre o no. Una función sin nombre se llama función anónima .
var funct = function getMax(a,b) { return a>b?a:b; };//Tenga en cuenta que el punto y coma después de esto no puede faltar, porque estamos definiendo una variable. ¡
A diferencia de definirla con una declaración de función , la función solo se puede llamar después de la declaración de definición de la función! Y al llamar, solo se puede usar el nombre de la variable funct
y no se puede usar el nombre de la función getMax
, como por ejemplo:
var funct = function getMax(a,b) {.
devolver a>b?a:b; }; console.log(funct(1,2));// Salida 2
function
:var funct = function(a,b) { return a>b?a:b };
Esta función no tiene nombre. Está asignada a la variable funct
, por lo que se llama función anónima. Asimismo, esta función sólo se puede llamar después de esta declaración.
var función = función(a,b) { return a>b?a:b }; console.log(funct(1,2));//
Resumen del resultado 2: La definición de una función con una expresión se puede utilizar de forma inmediata. se utilizará en esta declaración Luego llame a la función
En el cuarto entrenamiento, hemos introducido que los objetos pueden tener sus propios métodos, por supuesto, esto también es una función. La llamada de esta función es ligeramente diferente de las funciones definidas en los dos niveles anteriores.
// Definición de función: encontrar el valor máximo de tres números function max(a,b,c) { si(a > b) { si(a > c) devolver un; demás devolver c; } demás { si(b > c) volver b; demás devolver c; } } //Llama a esta función var resultado = max(1,2,3);//el resultado es 3 console.log(result);//Salida 3
Al llamar a la función, debe pasar la misma cantidad de valores específicos que los parámetros formales. La función anterior tiene 3
parámetros, por lo que cuando llame a continuación, pase 3
específicos. valores, 1
se pasa al parámetro a
, 2
se pasa al parámetro b
3
se pasa al parámetro c
. El valor de retorno de la función se pasa a la variable result
mediante el símbolo de asignación =
. Si no hay una palabra clave return
en el cuerpo de la función, se devolverá undefined
.
Llamar a funciones definidas en el objeto:
var ob = { identificación: 1, obtenerMax:función(a,b) { devolver a>b?a:b; } }; var result = ob.getMax(2,1);//El valor del resultado es 2 var result1 = ob["getMax"](2,1);//El valor de result1 también es 2.
La diferencia con Lo anterior es que aquí Para ubicar una función, debe usar对象名.函数名
o对象名["函数名"]
, los demás son iguales.
En la mayoría de los lenguajes de programación, se verifica el número y el tipo de parámetros reales pasados al llamar a una función, pero JavaScript
no verifica el tipo ni el número de parámetros reales.
Los parámetros reales en JavaScript
coincidirán con los parámetros formales en orden de izquierda a derecha , por ejemplo:
function myFunction(a,b,c) { consola.log(a); consola.log(b); console.log(c); } myFunction(1,2,3);
El parámetro real 1
se pasa al parámetro formal a
, el parámetro real 2
se pasa al parámetro formal b
y el parámetro real 3
se pasa al parámetro formal c
. Cuando el número de parámetros reales es menor que los parámetros formales, el valor undefined
se pasará al parámetro formal correcto. Por ejemplo:
función miFunción(a,b,c) { consola.log(a); consola.log(b); console.log(c); } myFunction(1,2);
El parámetro real 1
se pasa al parámetro formal a
, el parámetro real 2
se pasa al parámetro formal b
y undefined
pasa al parámetro formal c
. Si solo desea pasar datos a los parámetros de la derecha, puede pasar undefined
a los primeros parámetros reales. Por ejemplo:
function myFunction(a,b,c){ console.log(a); console.log(b); console.log(c } myFunction(undefinido,1,2)
; Lo suficientemente riguroso, la mejor práctica es establecer un valor predeterminado para los parámetros formales a los que se les pueden pasar valores undefined
. Por ejemplo:
función obtenerSuma(a,b,c) { si(c === indefinido) c = 0; console.log(a+b+c); } myFunction(1,2);
Todo JavaScript
es un objeto, y el parámetro real también es un objeto . Tiene un arguments
de nombre especial. debe considerarse como una matriz (similar a una matriz, no una matriz real), los parámetros reales son arguments[0]、arguments[1]...
de izquierda a derecha, arguments.length
representa el número de parámetros reales.
//Encontrar la suma de parámetros function getSum() { var aLongitud = argumentos.longitud; suma var = 0; for(var i = 0;i < unaLongitud;i++) { suma += argumentos[i]; } return sum; } console.log(getSum(1,2,3,4,5))//Salida 15.
Los parámetros formales aquí se omiten directamente y se representan mediante arguments[i]
.
JavaScript
complejas
Los desarrolladores deben verificar la correspondencia entre cada parámetro real y el parámetro formal, lo cual es muy ineficiente. Una buena solución es utilizar un objeto como parámetro, y la función operará sobre el parámetro según el nombre de propiedad del objeto.
función miFunción(obj) { console.log(obj.nombre); obj.número++; return obj.number; } myObj = {name:"myObj",number:34}; myFunction(myObj);//Salida myObj console.log(myObj.number);//Salida 35
una función (llamada a
para facilitar la escritura) se pueden usar como parámetros de otra función (llamada función b
), y la función b
finalmente puede devolver un valor específico.
En principio, la función b
llama a la función a
en su propio cuerpo de función, por lo que el nombre de la función a
debe pasarse a la función b
como un parámetro real. De la siguiente manera:
//Encontrar la función de valor máximo getMax(a,b) { return a>b?a:b } //Encontrar la función de valor mínimo getMin(a,b) { return a<b?a:b } //La siguiente función toma una función como parámetro y finalmente devuelve un valor function getM(func,num1,num2) { return func(num1,num2); } getM(getMax,1,2);//Return 2 getM(getMin,1,2);//Return 1
Pasamos el nombre de la función a
( getMax
o getMin
) a la función b
( getM()
), y luego llame a a
función a pasada dentro de la función b
para obtener los resultados relevantes.