Gilberto 🦁 PRO
Desarrollo visualizaciones y aplicaciones en línea, colaboro con distintos medios digitales
En JavaScript hay, básicamente, dos formas distintas de definir funciones:
function saludar () {
alert("Hola, mundo");
}let saludar = function (){
alert("Hola, mundo");
}Como declaración:
Como expresión:
Hay, además, otra forma de escribir funciones como expresión
function saludar () {
alert("Hola, mundo");
}let saludar = function (){
alert("Hola, mundo");
}Como declaración:
Como expresión:
let saludar = () => {
alert("Hola, mundo");
}Función flecha
Una IIFE es, más bien, un patrón de uso común para ejecutar código en su propio alcance (scope), o bien, para crear un nuevo contexto asíncrono dentro de un contexto síncrono
En general, consisten en dos partes:
Una IIFE es, más bien, un patrón de uso común para ejecutar código en su propio alcance (scope), o bien, para crear un nuevo contexto asíncrono dentro de un contexto síncrono
(function () {
// instrucciones
})();
IIFE estándar
Una IIFE es, más bien, un patrón de uso común para ejecutar código en su propio alcance (scope), o bien, para crear un nuevo contexto asíncrono dentro de un contexto síncrono
(() => {
//instrucciones
})();IIFE con una función flecha
Una IIFE es, más bien, un patrón de uso común para ejecutar código en su propio alcance (scope), o bien, para crear un nuevo contexto asíncrono dentro de un contexto síncrono
(async () => {
//instrucciones
})();IIFE asíncrona
Podemos usar una función como la que se describe a continuación para asegurar que el código sea ejecutado apenas el DOM esté listo en la memovia del navegador
let windowReady = (function () {
function ready(fn) {
if (document.readyState != "loading") {
fn();
} else if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", fn);
} else {
document.attachEvent("onreadystatechange", function () {
if (document.readyState != "loading") fn();
});
}
}
return {
ready: ready,
};
})();
En este código podemos identificar:
Después de tener definida la función anterior, podemos usarla como sigue:
windowReady.ready(function () {
//instrucciones
});Lo que hacemos es enviar una función que queramos ejecutar al método windowReady.ready()
Es de notar que el código dentro de la función queda en un scope distinto al global y aislado de este
Los eventos son cosas que suceden dentro de una página como respuesta a alguna interacción con el usuario:
Para asignar un evento se requieren:
let boton = document.querySelector("#boton");
function random(number) {
return Math.floor(Math.random() * (number + 1));
}
boton.addEventListener("click", () => {
let rndCol = `rgb(${random(255)} ${random(255)} ${random(255)})`;
document.body.style.backgroundColor = rndCol;
});El método addEventListener no es la única manera de crear un evento pero sí es la más recomendable
Otra forma de asignar el mismo evento podría usando un callback ser como se muestra en el ejemplo
let boton = document.querySelector("#boton");
function random(number) {
return Math.floor(Math.random() * (number + 1));
}
function cambiaFondo() {
let rndCol = `rgb(${random(255)} ${random(255)} ${random(255)})`;
document.body.style.backgroundColor = rndCol;
}
boton.addEventListener("click", cambiaFondo);La función que se llama cuando se dispara un evento recibe, por defecto, un objeto con toda la información del evento
let boton = document.querySelector("#boton");
function random(number) {
return Math.floor(Math.random() * (number + 1));
}
function cambiaFondo(e) {
let rndCol = `rgb(${random(255)} ${random(255)} ${random(255)})`;
document.body.style.backgroundColor = rndCol;
console.log(e);
}
boton.addEventListener("click", cambiaFondo);El objeto del evento lleva toda la información relacionada al evento pero hay un par de cosas que son particularmente importantes:
By Gilberto 🦁
Funciones y eventos
Desarrollo visualizaciones y aplicaciones en línea, colaboro con distintos medios digitales