Saltar al contingut principal
JavaScript

JavaScript Modern: Origen, Arquitectura del Motor V8 i l'Ecosistema ECMAScript

Guia enciclopèdica i tècnica sobre JavaScript: com va néixer el 1995, per a què s'utilitza, funcionament de l'Event Loop i del motor V8, i la seva evolució fins a l'estàndard ES2024.

Jaume TurJaume Tur
••3 min de lectura estimada
JavaScript i arquitectura del motor V8
Taula de ContingutsMostrar / Amagar

Què és JavaScript?

JavaScript (abreujat habitualment com a JS) és un llenguatge de programació d’alt nivell, interpretat i compilat Just-In-Time (JIT), dinàmic, basat en prototips i multitasca amb un únic fil d’execució (single-threaded). Juntament amb HTML i CSS, JavaScript constitueix un dels tres pilars fonamentals de la World Wide Web.

Inicialment concebut per a executar codi al navegador web de l’usuari (client-side), actualment s’executa també en servidors (mitjançant entorns d’execució com Node.js, Deno o Bun), dispositius IoT, aplicacions d’escriptori (Electron, Tauri) i aplicacions mòbils.


Quan es va crear i per qui?

  • Any de creació: Maig de 1995.
  • Creador: Brendan Eich, mentre treballava per a l’empresa Netscape Communications Corporation.
  • Context històric: Netscape volia un llenguatge lleuger i fàcil d’aprendre per a afegir dinamisme a Netscape Navigator 2.0. Eich va desenvolupar el primer prototip en tan sols 10 dies, inicialment anomenat internament Mocha, posteriorment rebatejat com a LiveScript, i finalment nomenat JavaScript per motius purament comercials i estratègics gràcies a l’aliança de Netscape amb Sun Microsystems (creadors de Java).
  • Estandardització: El 1997, Netscape va presentar el llenguatge a ECMA International per a definir una especificació neutral i oberta, naixent així l’estàndard oficial ECMAScript (ECMA-262).

Per a què s’utilitza?

JavaScript és el motor reactiu de la web moderna. Els seus àmbits d’aplicació principals inclouen:

  1. Interactivitat al navegador: Manipulació del DOM (Document Object Model), gestió d’esdeveniments d’usuari (clics, scroll, tecles), validació de formularis en temps real i animacions.
  2. Peticions asíncrones i APIs: Comunicació en segon pla mitjançant fetch() o WebSockets sense necessitat de recarregar la pàgina web (AJAX/SPA).
  3. Desenvolupament frontend modern: Base subjacent de llibreries i frameworks com Angular, React, Vue, Svelte o Astro.
  4. Desenvolupament backend: Construcció de servidors web, microserveis i APIs REST o GraphQL a través de Node.js.
  5. Eines de compilació i automatització: Execució d’empaquetadors com Vite, Webpack, Rollup o esbuild.

Arquitectura Tècnica: Com funciona sota el capó?

A diferència dels llenguatges compilats clàssics (C, C++, Rust), JavaScript utilitza un model híbrid de compilació en temps d’execució:

1. El Motor V8 (Google Chrome & Node.js)

El codi font passa per tres etapes:

  • Parser: Converteix el text en un Arbre de Sintaxi Abstracta (AST).
  • Intèrpret Ignition: Genera bytecode a partir de l’AST per a començar l’execució immediata sense latència inicial.
  • Compilador optimitzador TurboFan: Detecta funcions que s’executen freqüentment (hot functions) i les compila directament a codi màquina altament optimitzat.

2. L’Event Loop i el Model Asíncron

Com que JavaScript té un sol fil d’execució principal, utilitza un bucle d’esdeveniments (Event Loop) i una cua de tasques (Task Queue i Microtask Queue) per a delegar operacions I/O (xarxa, fitxers, temporitzadors) al sistema operatiu o a fils de fons (com libuv), garantint que la interfície mai es bloquegi.

// Exemple de flux asíncron modern amb async/await
async function carregarDadesEnginyeria(endpoint) {
  try {
    const resposta = await fetch(endpoint, {
      headers: { 'Accept': 'application/json' }
    });
    if (!resposta.ok) throw new Error(`HTTP Error: ${resposta.status}`);
    const dades = await resposta.json();
    return dades;
  } catch (error) {
    console.error('Error al carregar dades:', error);
    throw error;
  }
}

Evolució i Versions Clau

  • ES5 (2009): Va introduir el mode estricte ('use strict'), mètodes d’array com map(), filter(), reduce(), i suport natiu per a JSON.
  • ES6 / ES2015: La revolució més gran del llenguatge: classes, mòduls import/export, funcions fletxa () => {}, promeses, desestructuració, templates literals i variables d’àmbit de bloc (let, const).
  • ES2017 - ES2024: async/await, operadors ?. (optional chaining) i ?? (nullish coalescing), mètodes immutables d’array (toSorted(), toReversed()), i suport avançat per a multithreading lleuger amb Web Workers.

Per què és imprescindible en el nostre stack?

Al nostre flux de treball, JavaScript és el fonament sobre el qual construïm aplicacions TypeScript rigoroses i interfícies ultra-ràpides. Comprendre a fons el seu model de memòria, la gestió de l’Event Loop i les peculiaritats de coerció de tipus és el que permet crear webs que assoleixen el 100/100 en Core Web Vitals sense bloquejar el fil d’execució principal.

Etiquetes:#javascript#v8#ecmascript#web-standards#event-loop#frontend
T'ha resultat útil aquest article?
CompartirLinkedIn
Jaume Tur

Jaume TurFrontend & Web Apps

Desenvolupador web amb base a València especialitzat en Angular, TypeScript, alt rendiment a 60 FPS, accessibilitat WCAG AA i automatització de pipelines CI/CD. Comparteix aprenentatges pràctics del dia a dia en producció.

Recurs Gratuït per a Desenvolupadors

Checklist de Rendiment (60 FPS) i Accessibilitat (WCAG AA)

Els 25 punts d'auditoria que aplique en producció abans de desplegar qualsevol aplicació web o SPA en Angular/TypeScript.

Tens un repte similar a la teua empresa o projecte?

Puc ajudar el teu equip a auditar rendiment web, modernitzar arquitectures frontend o implementar CI/CD robust.

Sol·licitar Auditoria o Consultoria