Las funciones de JavaScript se definen con la palabra clavefunction
.
puede utilizar una declaración de función o una expresión de función.
Declaraciones de funciones
Anteriormente en este tutorial, aprendió que las funciones se declaran con la siguiente sintaxis:
/ / código a ejecutar
}
Las funciones declaradas no se ejecutan inmediatamente. Se «guardan para su uso posterior», y se ejecutarán más tarde, cuando se invoquen (se invoquen).
Ejemplo
devuelve a * b;
}
Pruébalo tú mismo »
Los puntos y comas se usan para separar sentencias JavaScript ejecutables.
Dado que una declaración de función no es una declaración ejecutable, no es común terminarla con un punto y coma.
Expresiones de función
También se puede definir una función JavaScript mediante una expresión.
Una expresión de función se puede almacenar en una variable:
Ejemplo
Pruébelo usted mismo «
Después de que una expresión de función se haya almacenado en una variable, la variable se puede usar como función:
Ejemplo
var z = x(4, 3);
Pruébelo usted mismo »
La función anterior es en realidad una función anónima (una función sin nombre).
Las funciones almacenadas en variables no necesitan nombres de función. Siempre se invocan (invocan) usando el nombre de la variable.
La función anterior termina con un punto y coma porque es parte de una instrucción ejecutable.
El Constructor Function ()
Como ha visto en los ejemplos anteriores, las funciones de JavaScript se definen con la palabra clave function
.
Las funciones también se pueden definir con un constructor de funciones JavaScript integrado llamado Function()
.
Ejemplo
var x = myFunction(4, 3);
Pruébelo usted mismo »
En realidad no tiene que usar el constructor de funciones. El ejemplo anterior es lo mismo que escribir:
Ejemplo
var x = myFunction (4, 3);
Pruébelo usted mismo »
La mayoría de las veces, puede evitar el uso de la palabra clave new
en JavaScript.
Elevación de funciones
Anteriormente en este tutorial, aprendió sobre «elevación» (elevación JavaScript).
Hoisting es el comportamiento predeterminado de JavaScript de mover declaraciones a la parte superior del ámbito actual.
El levantamiento se aplica a las declaraciones de variables y a las declaraciones de funciones.
Debido a esto, las funciones de JavaScript puede ser llamado antes de que se declare:
function myFunction(y) {
return y * y;
}
Funciones definidas utilizando una expresión que no está izada.
Funciones auto Invocables
Las expresiones de función se pueden hacer «auto invocables».
Una expresión auto invocable se invoca (inicia) automáticamente, sin ser llamada.
Las expresiones de función se ejecutarán automáticamente si la expresión va seguida de ().
No puede invocar automáticamente una declaración de función.
Debe agregar paréntesis alrededor de la función para indicar que es una expresión de función:
Ejemplo
var x = » Hello!!»; / / Me invocaré a mí mismo
})();
Pruébelo usted mismo »
La función anterior es en realidad una función auto invocante anónima (función sin nombre).
Las funciones se pueden usar como valores
Las funciones de JavaScript se pueden usar como valores:
Ejemplo
devuelve a * b;
}
var x = MiFunción (4, 3);
Pruébelo usted mismo «
Las funciones de JavaScript se pueden usar en expresiones:
Ejemplo
devuelve a * b;
}
var x = MiFunción(4, 3) * 2;
Pruébelo Usted mismo «
Las funciones son objetos
El operador typeof
en JavaScript devuelve «función» para funciones.
Pero, las funciones de JavaScript se pueden describir mejor como objetos.
Las funciones de JavaScript tienen propiedades y métodos.
La propiedad arguments.length
devuelve el número de argumentos recibidos cuando se invocó la función:
Ejemplo
devuelve argumentos.length;
}
Pruébalo tú mismo »
El método toString()
devuelve la función como una cadena:
Ejemplo
return a * b;
}
var txt = myFunction.toString ();
Pruébelo usted mismo »
Una función definida como la propiedad de un objeto, se llama método al objeto.
Una función diseñada para crear nuevos objetos, se llama constructor de objetos.
Funciones de flecha
Funciones de flecha permite una sintaxis corta para escribir expresiones de función.
No necesita la palabra clave function
, la palabra clave return
y los corchetes rizados.
Ejemplo
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
pruébelo usted Mismo »
funciones no tienen su propiothis
.No son muy adecuados para definir métodos de objetos.
Las funciones de flecha no están izadas. Deben definirse antes de ser utilizados.
Usar const
es más seguro que usar var
, porque una expresión de función es siempre un valor constante.
Solo puede omitir la palabra clave return
y los corchetes si la función es una sola instrucción. Debido a esto, podría ser un buen hábito mantenerlos siempre:
Ejemplo
Pruébelo usted mismo »
Las funciones de flecha no son compatibles con IE11 o versiones anteriores.