Tutorial JS

JS INICIO JS Introducción JS Dónde Salida JS Declaraciones JS Sintaxis JS Comentarios JS Variables JS JS Vamos Constante JS Operadores JS Aritmética JS Tarea JS Tipos de datos JS Funciones JS Objetos JS Eventos JS Cadenas JS Métodos de cadena JS Búsqueda de cadenas JS Plantillas de cadena JS Números JS Métodos numéricos JS Matrices JS Métodos de matriz JS Clasificación de matriz JS Iteración de matriz JS Constante de matriz JS Fechas JS Formatos de fecha JS Métodos de obtención de fecha JS Métodos de configuración de fechas JS Matemáticas JS JS al azar Booleanos JS Comparaciones JS Condiciones JS Interruptor JS Bucle JS para Bucle JS para entrada Bucle JS para de Bucle JS mientras descanso JS Iterables JS Conjuntos JS Mapas JS JS Tipo de Conversión de tipo JS JS bit a bit JS expresión regular Errores JS Alcance JS JS Elevación Modo estricto JS JS esta palabra clave Función de flecha JS Clases JS JSJSON Depuración JS Guía de estilo JS Prácticas recomendadas de JS Errores JS Rendimiento JS Palabras reservadas de JS

Versiones JS

Versiones JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Borde Historia de JS

Objetos JS

Definiciones de objetos Propiedades del objeto Métodos de objeto Visualización de objetos Accesores de objetos Constructores de objetos Prototipos de objetos Objeto iterables Conjuntos de objetos Mapas de objetos Referencia de objeto

Funciones JS

Definiciones de funciones Parámetros de función Invocación de función Llamada de función Función Aplicar Cierres de funciones

Clases JS

Introducción a la clase Herencia de clase Clase estática

JS asíncrono

Devoluciones de llamada JS JS asíncrono Promesas JS JS asíncrono/espera

JS HTML DOM

Introducción al DOM Métodos DOM Documento DOM Elementos DOM DOM HTML Formularios DOM DOM CSS Animaciones DOM Eventos DOM Oyente de eventos DOM Navegación DOM Nodos DOM Colecciones DOM Listas de nodos DOM

Lista de materiales del navegador JS

Ventana JS Pantalla JS Ubicación de JS Historia de JS Navegador JS Alerta emergente JS Tiempo JS Galletas JS

API web de JS

Introducción a la API web API de formularios web API de historial web API de almacenamiento web API de trabajo web API de búsqueda web API de geolocalización web

JS AJAX

Introducción a AJAX AJAX XMLHttp Solicitud AJAX Respuesta AJAX Archivo XML AJAX AJAXPHP Ajax ASP Base de datos AJAX Aplicaciones AJAX Ejemplos de AJAX

JSJSON

Introducción JSON Sintaxis JSON JSON frente a XML Tipos de datos JSON Análisis JSON Cadena JSON Objetos JSON Matrices JSON Servidor JSON JSONPHP JSONHTML JSON JSONP

JS frente a jQuery

Selectores jQuery HTML de jQuery CSS de jQuery DOM de jQuery

Gráficos JS

Gráficos JS Lienzo JS JS Trazado Gráfico JS.js Gráfico de Google JS JS D3.js

Ejemplos de JS

Ejemplos de JS JS HTML DOM Entrada HTML JS Objetos JS HTML Eventos JS HTML Navegador JS Editor JS Ejercicios JS Prueba JS Certificado JS

Referencias JS

Objetos JavaScript Objetos HTML DOM


Definiciones de funciones de JavaScript


Las funciones de JavaScript se definen con la functionpalabra clave.

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:

function functionName(parameters) {
  // code to be executed
}

Las funciones declaradas no se ejecutan inmediatamente. Se "guardan para su uso posterior" y se ejecutarán más tarde, cuando se invoquen (invoquen).

Ejemplo

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

Los puntos y comas se utilizan 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

Una función de JavaScript también se puede definir usando una expresión .

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

Ejemplo

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

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

Ejemplo

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

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 (llaman) usando el nombre de la variable.

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



El constructor de funciones()

Como has visto en los ejemplos anteriores, las funciones de JavaScript se definen con la functionpalabra clave.

Las funciones también se pueden definir con un constructor de funciones de JavaScript incorporado llamado Function().

Ejemplo

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

let x = myFunction(4, 3);

En realidad, no tiene que usar el constructor de funciones. El ejemplo anterior es lo mismo que escribir:

Ejemplo

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

let x = myFunction(4, 3);

La mayoría de las veces, puede evitar usar la newpalabra clave en JavaScript.


función de elevación

Anteriormente en este tutorial, aprendió sobre "elevación" ( JavaScript Hoisting ).

Hoisting es el comportamiento predeterminado de JavaScript de mover declaraciones a la parte superior del alcance actual.

El levantamiento se aplica a las declaraciones de variables ya las declaraciones de funciones.

Debido a esto, las funciones de JavaScript se pueden llamar antes de que se declaren:

myFunction(5);

function myFunction(y) {
  return y * y;
}

Las funciones definidas mediante una expresión no se elevan.


Funciones de autoinvocación

Las expresiones de función se pueden hacer "autoinvocables".

Una expresión autoinvocada 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 autoinvocar 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

(function () {
  let x = "Hello!!";  // I will invoke myself
})();

La función anterior es en realidad una función autoinvocada anónima (función sin nombre).


Las funciones se pueden usar como valores

Las funciones de JavaScript se pueden utilizar como valores:

Ejemplo

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

let x = myFunction(4, 3);

Las funciones de JavaScript se pueden utilizar en expresiones:

Ejemplo

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

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

Las funciones son objetos

El typeofoperador 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 arguments.lengthpropiedad devuelve el número de argumentos recibidos cuando se invocó la función:

Ejemplo

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

El toString()método devuelve la función como una cadena:

Ejemplo

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

let text = myFunction.toString();

Una función definida como la propiedad de un objeto, se llama método del objeto.
Una función diseñada para crear nuevos objetos se denomina constructor de objetos.


Funciones de flecha

Las funciones de flecha permiten una sintaxis corta para escribir expresiones de funciones.

No necesita la functionpalabra clave, la returnpalabra clave y las llaves .

Ejemplo

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

// ES6
const x = (x, y) => x * y;

Las funciones de flecha no tienen las suyas propias this. No son adecuados para definir métodos de objetos .

Las funciones de flecha no se elevan. Deben definirse antes de que se utilicen.

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

Solo puede omitir la returnpalabra clave y las llaves si la función es una declaración única. Por eso, puede ser un buen hábito conservarlos siempre:

Ejemplo

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

Las funciones de flecha no son compatibles con IE11 o versiones anteriores.