Appearance
JavaScript y la programación de scripts
JavaScript nació como un lenguaje de scripting o lenguaje de guiones diseñado para incorporar comportamiento a las páginas web.
Tradicionalmente, los lenguajes de scripting se han caracterizado por permitir ejecutar código dentro de un determinado entorno sin necesidad de realizar previamente un proceso de compilación manual para generar un programa ejecutable.
En el desarrollo web, JavaScript se integra con el navegador y permite programar el comportamiento de las aplicaciones que utiliza el usuario.
Lenguajes de scripting
Un script es un conjunto de instrucciones que se ejecuta dentro de un determinado entorno.
En el caso de JavaScript en entorno cliente:
text
Código JavaScript
│
↓
Navegador
│
↓
Motor JavaScript
│
↓
EjecuciónEl desarrollador escribe el código JavaScript y el navegador se encarga de procesarlo y ejecutarlo.
Por ejemplo:
js
console.log("Hello DWEC");Podemos ejecutar directamente esta instrucción desde la consola del navegador sin realizar previamente un proceso manual de compilación.
INFO
La distinción tradicional entre lenguajes interpretados y compilados se ha vuelto menos estricta.
Los motores JavaScript actuales pueden interpretar, compilar y optimizar el código durante su ejecución utilizando técnicas como la compilación JIT (Just-In-Time).
Por ello, es más preciso indicar que JavaScript no requiere que el desarrollador realice un proceso de compilación previo para ejecutarlo en el navegador.
Características de JavaScript
JavaScript presenta una serie de características que condicionan la forma en la que desarrollamos aplicaciones.
Lenguaje de alto nivel
JavaScript es un lenguaje de alto nivel.
El desarrollador puede trabajar con estructuras y abstracciones sin gestionar directamente aspectos de bajo nivel como direcciones de memoria o instrucciones del procesador.
Tipado dinámico
JavaScript utiliza tipado dinámico.
El tipo está asociado al valor y una variable puede contener valores de diferentes tipos durante la ejecución.
Por ejemplo:
js
let value = 10;
value = "DWEC";Estudiaremos el sistema de tipos de JavaScript con mayor profundidad en la siguiente unidad.
Gestión automática de memoria
JavaScript gestiona automáticamente la memoria utilizada por los objetos y valores creados durante la ejecución.
El motor JavaScript puede liberar memoria que ya no está siendo utilizada mediante un mecanismo denominado garbage collection o recolección de basura.
Orientado a eventos
Gran parte del código JavaScript que se ejecuta en el navegador responde a eventos.
Algunos ejemplos son:
- Pulsar un botón.
- Escribir en un formulario.
- Mover el ratón.
- Cargar una página.
- Recibir una respuesta de un servidor.
Por ejemplo:
js
button.addEventListener("click", () => {
console.log("Button clicked");
});La programación basada en eventos será estudiada posteriormente con mayor profundidad.
Programación asíncrona
JavaScript permite iniciar determinadas operaciones y continuar ejecutando otras tareas mientras se espera su resultado.
Esto es especialmente importante en operaciones como:
- Realizar peticiones a un servidor.
- Esperar la interacción del usuario.
- Utilizar temporizadores.
- Acceder a determinadas APIs del navegador.
Los mecanismos de programación asíncrona se estudiarán en unidades posteriores.
JavaScript moderno
Aunque JavaScript nació como un lenguaje para añadir pequeños scripts a documentos HTML, actualmente se utiliza para desarrollar aplicaciones de gran tamaño.
JavaScript puede utilizarse para:
- Desarrollar aplicaciones web en el navegador.
- Crear aplicaciones de servidor con Node.js.
- Desarrollar aplicaciones móviles.
- Crear aplicaciones de escritorio.
- Automatizar herramientas y procesos de desarrollo.
Además, alrededor del lenguaje existe un amplio ecosistema de frameworks y herramientas.
En este módulo trabajaremos inicialmente con Vanilla JavaScript y posteriormente con Vue 3.
Vanilla JavaScript
La expresión Vanilla JavaScript se utiliza para referirse al uso de JavaScript sin frameworks o librerías adicionales.
No es una variante diferente del lenguaje.
Ventajas de JavaScript en el navegador
La ejecución de JavaScript en el cliente ofrece diferentes ventajas:
- Permite responder inmediatamente a las acciones del usuario.
- Permite crear interfaces dinámicas e interactivas.
- Puede reducir determinadas comunicaciones con el servidor.
- Permite actualizar partes de una página sin recargarla completamente.
- Está soportado de forma nativa por los navegadores web actuales.
- Utiliza estándares comunes que permiten desarrollar aplicaciones multiplataforma.
El mismo código puede ejecutarse, en muchos casos, en diferentes sistemas operativos siempre que exista un navegador compatible.
Limitaciones y consideraciones
La ejecución de código en el navegador también presenta algunas limitaciones:
- El código enviado al cliente puede ser inspeccionado por el usuario.
- El usuario puede modificar o impedir la ejecución del código.
- El navegador restringe el acceso al sistema por motivos de seguridad.
- Algunas características pueden presentar diferencias de compatibilidad entre navegadores.
- Las operaciones críticas de seguridad no pueden confiar exclusivamente en el código del cliente.
Estas características explican por qué una aplicación web suele distribuir sus responsabilidades entre el cliente y el servidor.
JavaScript frente a otros lenguajes
JavaScript comparte muchas características con otros lenguajes de programación, pero presenta algunas particularidades especialmente relevantes para el desarrollo web.
| Característica | JavaScript en el navegador | Aplicación compilada tradicional |
|---|---|---|
| Entorno de ejecución | Navegador. | Sistema operativo. |
| Compilación manual previa | No es necesaria. | Habitualmente necesaria. |
| Acceso al sistema | Restringido por el navegador. | Puede disponer de mayor acceso. |
| Distribución | El código se descarga desde la Web. | Normalmente requiere un ejecutable o instalación. |
| Actualización | Puede recibirse al cargar la aplicación. | Puede requerir actualizar la aplicación instalada. |
| Código disponible para el usuario | Generalmente sí. | Depende del tipo de aplicación. |
TIP
JavaScript ya no debe entenderse únicamente como un lenguaje para escribir pequeños scripts.
Es un lenguaje de programación de propósito general que, en el contexto de DWEC, utilizaremos principalmente para desarrollar aplicaciones que se ejecutan en el navegador.