Hay dos formas de declarar funciones en JavaScript: Function Declarative and Function Expression.
Las diferencias son las siguientes:
1). Para las funciones definidas por los métodos declarados por función, el nombre de la función es necesario, mientras que el nombre de la función de la expresión de la función es opcional.
2). Las funciones definidas por los métodos declarados por la función pueden llamarse antes de la declaración de la función, mientras que las funciones de las expresiones de función solo se pueden llamar después de la declaración.
3). Las funciones definidas por los métodos declarados por la función no son declaraciones reales. Solo pueden aparecer a nivel mundial o anidado en otras funciones, pero no pueden aparecer en bucles, condiciones o try/atrapan/finalmente, y
Las expresiones de funciones se pueden declarar en cualquier lugar.
Los siguientes son dos métodos para definir la función:
La copia del código es la siguiente:
// Formula declarativa de función
function saludo () {
console.log ("Hola mundo");
}
// Expresión de funciones
var greeming = function () {
console.log ("Hola mundo");
}
Aquí hay un interesante JavaScript:
La copia del código es la siguiente:
función f () {console.log ('¡Estoy afuera!'); }
(función () {
if (false) {
// repite la función F
función f () {console.log ('¡Estoy dentro!'); }
}
F();
} ());
¿Qué saldrá? La primera reacción debería ser "Estoy afuera". Como resultado, "I Am Inside" se emite en Chrome, IE11 informó directamente un error y la versión inferior de las salidas de Firefox "Estoy afuera" ...
El resultado de la salida de Chrome refleja claramente las características de las funciones declaradas con expresiones declarativas de función: se pueden llamar a las funciones antes de la declaración.
El error de IE muestra que falta el objeto porque la declaración de función está en la condición, que viola el principio de la declaración de función.
Alcance de las expresiones de función:
Si la función declarada por la expresión de la función tiene un nombre de función, entonces el nombre de la función es equivalente a una variable local de la función y solo puede llamarse dentro de la función. Por ejemplo, un castaño:
La copia del código es la siguiente:
var f = Function Fact (x) {
if (x <= 1)
regresar 1;
demás
return x*hecho (x-1);
};
alerta (hecho ()); // no capturado referenceError: el hecho no está definido
FACT () se puede llamar dentro de la función, pero se informará un error cuando se llame fuera de la función: el hecho no está definido
Lo anterior se trata de este artículo, espero que les guste.