Definición de funciones de JavaScript

Las funciones de JavaScript se definen a través de function palabra clavedefinir.

Puedes usar funcionesEl Hoisting es el mecanismo por el que JavaScripto funciónExpresión

declaración de función

En el tutorial anterior, aprendiste a definir funciones utilizando la siguiente sintaxisEl Hoisting es el mecanismo por el que JavaScriptFunción:

function nombreDeFunción(parámetros) {
   El código a ejecutar
}

Las funciones declaradas no se ejecutan directamente. Se 'guardan para usar más tarde' y se ejecutarán más tarde, cuando se llamen.

Ejemplo

function myFunction(a, b) {
     return a * b;
}

Prueba por tu cuenta

El punto y coma se usa para separar instrucciones ejecutables de JavaScript.

Dado que la funciónEl Hoisting es el mecanismo por el que JavaScriptNo son instrucciones ejecutables, no terminan con punto y coma y no es común.

expresión de función

Las funciones de JavaScript también pueden usarExpresiónpara definir.

La expresión de la función se puede almacenar en una variable:

Ejemplo

var x = function (a, b) {return a * b};

Prueba por tu cuenta

Después de almacenar la expresión de la función en una variable, esta variable se puede usar como una función:

Ejemplo

var x = function (a, b) {return a * b};
var z = x(4, 3);

Prueba por tu cuenta

;Función anónimaFunción autoinvocada anónima

Las funciones almacenadas en variables no necesitan un nombre. Siempre se llaman utilizando el nombre de la variable.

La función anterior termina con un punto y coma porque es parte de una instrucción ejecutable.

constructor Function()

Como viste en los ejemplos anteriores, las funciones de JavaScript se definen a través de function palabra clave.

Las funciones también pueden definirse mediante un nombre de Function() Function()

Ejemplo

para definir las funciones integradas de JavaScript.
Las funciones JavaScript se pueden usar como valores:

Prueba por tu cuenta

var myFunction = new Function("a", "b", "return a * b");

Ejemplo

Realmente no necesita usar el constructor de función. El ejemplo también es así:
Las funciones JavaScript se pueden usar como valores:

Prueba por tu cuenta

var myFunction = function (a, b) {return a * b}; En la mayoría de los casos, puede evitar usar new

palabra clave.

elevación de funciones

en el tutorial anterior, ya ha aprendido "elevación" (hoisting).El Hoisting es el mecanismo por el que JavaScriptDeclaración

El comportamiento predeterminado de mover a la cima del ámbito actual.

El Hoisting se aplica a las declaraciones de variables y funciones.

Por lo tanto, las funciones JavaScript pueden llamarse antes de su declaración:
 myFunction(5);
     function myFunction(y) {
}

return y * y;

Las funciones definidas por expresiones no se elevan.

Función autoinvocada

La expresión de función puede actuar como "autoinvocada".

expresión autoinvocada es llamada automáticamente (inicia), sin hacer una llamada. }

La expresión de función se ejecuta automáticamente, si la expresión está seguida de

No puede autoinvocar una declaración de función.

Ejemplo

Necesita agregar paréntesis alrededor de la función para indicar que es una expresión de función:
    (function () {
var x = "Hello!!";      // Me voy a llamar a mí mismo}()

Prueba por tu cuenta

;La función anterior es realmente unaFunción autoinvocada anónima

(funciones anónimas sin nombre)。

Las funciones se pueden usar como valores

Ejemplo

function myFunction(a, b) {
    return a * b;
}
Las funciones JavaScript se pueden usar como valores:

Prueba por tu cuenta

var x = myFunction(4, 3);

Ejemplo

function myFunction(a, b) {
    return a * b;
}
Las funciones JavaScript se pueden usar en expresiones:

Prueba por tu cuenta

var x = myFunction(4, 3) * 2;

las funciones en JavaScript son objetos typeof El operador devuelve "function"。

pero es mejor describir las funciones JavaScript como objetos.

las funciones JavaScript tienenlas propiedadesyLa función

arguments.length retornará el número de argumentos recibidos cuando se llama a la función:

Ejemplo

function myFunction(a, b) {
    return arguments.length;
}

Prueba por tu cuenta

toString() La función devuelve una cadena:

Ejemplo

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

Prueba por tu cuenta

Las funciones definidas como propiedades de objeto se llaman métodos de objeto.

Las funciones diseñadas para crear nuevos objetos se llaman constructores de objetos (constructores de objeto).

Funciones flecha

Las funciones flecha permiten usar una sintaxis breve para escribir expresiones de función.

No es necesario el keyword function, la palabra clave return y los corchetes.

Ejemplo

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

Prueba por tu cuenta

Las funciones flecha no tienen su propio this. No son adecuadas para definir métodos de objeto.

Las funciones flecha no se elevan. Deben definirse antes de su uso.

Usar const es más seguro que usar var, ya que la expresión de función siempre es un valor constante.

Si la función es una única instrucción, se puede omitir la palabra clave return y los corchetes. Por lo tanto, mantenerlos puede ser una buena costumbre:

Ejemplo

const x = (x, y) => { return x * y };

Prueba por tu cuenta

Las versiones anteriores a IE11 no admiten funciones flecha.