Skip to content

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ón

El 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ísticaJavaScript en el navegadorAplicación compilada tradicional
Entorno de ejecuciónNavegador.Sistema operativo.
Compilación manual previaNo es necesaria.Habitualmente necesaria.
Acceso al sistemaRestringido por el navegador.Puede disponer de mayor acceso.
DistribuciónEl código se descarga desde la Web.Normalmente requiere un ejecutable o instalación.
ActualizaciónPuede recibirse al cargar la aplicación.Puede requerir actualizar la aplicación instalada.
Código disponible para el usuarioGeneralmente 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.