Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Introducción

Mientras que HTML define la estructura y el contenido de una página web y el CSS define el formato y la apariencia, JavaScript agrega interactividad a una página web y crea aplicaciones web enriquecidas.

Sin embargo, el término paraguas "JavaScript", tal como se entiende en un contexto de navegador web, contiene varios elementos muy diferentes. Uno de ellos es el lenguaje principal (ECMAScript), otro es la colección de las APIs Web, incluyendo el DOM (Document Object Model).

JavaScript, el núcleo del lenguaje (ECMAScript)

EL núcleo del lenguaje JavaScript está estandarizado por el Comité ECMA TC39 como un lenguaje llamado ECMAScript. La última versión de la especificación es ECMAScript 6.0.

Éste núcleo del lenguaje es también usado en ambientes No-Navegadores, por ejemplo en node.js.

Qué considera ECMAScript scope?

Entre otras cosas, ECMAScript define:

  • Sintaxis (reglas de análisis, palabras clave, flujos de control, inicialización literal de objetos...).
  • Mecanismos de control de errores (throw, try/catch, habilidad para crear tipos de Errores definidos por el usuario).
  • Tipos (boolean, number, string, function, object...).
  • Los objetos globales. En un navegador, estos objetos globales son los objetos de la ventana, pero ECMAScript solo define APIs no especificas para navegadores, ej. parseInt, parseFloat, decodeURI, encodeURI...
  • Mecanismo de herencia basada en prototipos.
  • Objetos y funciones incorporadas (JSON, Math, Array.prototype methods, Object introspection methods...)
  • Modo estricto.

A partir de Octubre del 2016, la gran mayoria de los navegadores soportan ECMAScript 5.1 y ECMAScript 2015 aka ES6, pero versiones antiguas (aún en uso) implementan ECMAScript 5 solamente.

Futuro

La 6ta edición principal de ECMAScript fue oficialmente aprobada y publicada como un estándar el 17 de Junio del 2015 por la ECMA General Assembly. Desde entonces las ediciones de ECMAScript son publicadas anualmente.

Internacionalización de la API

La ECMAScript Internationalization API Specification es una adición para la especificación del lenguaje ECMAScript, también estandarizada por Ecma TC39. La internacionalización de la API provee intercalación --collation-- (comparación de string), formateo de números, y fomateo de fechas/tiempo para aplicaciones JavaScript, permitiendo que las aplicaciones elijan el idioma y adapten la funcionalidad a sus necesidades. El estandar inicial fue aprobado en Deciembre del 2012; el estado de la implementación en navegadores es rastreado en la documentación de la Intl object. Las especificaciones de la internacionalización son actualmente ratificadas cada año y los navegadores constantemente mejoran su implementación.

DOM APIs

WebIDL

Las especificaciones de la WebIDL proporcionan el vínculo de las tecnologías DOM y ECMAScript.

The Core of the DOM

The Document Object Model (DOM) is a cross-platform, language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Objects in the DOM tree may be addressed and manipulated by using methods on the otechnologiesbjects. The W3C standardizes the Core Document Object Model, which defines language-agnostic interfaces that abstract HTML and XML documents as objects, and also defines mechanisms to manipulate this abstraction. Among the things defined by the DOM, we can find:

  • The document structure, a tree model, and the DOM Event architecture in DOM core: Node, Element, DocumentFragment, Document, DOMImplementation, Event, EventTarget, …
  • A less rigorous definition of the DOM Event Architecture, as well as specific events in DOM events.
  • Other things such as DOM Traversal and DOM Range.

From the ECMAScript point of view, objects defined in the DOM specification are called "host objects".

HTML DOM

HTML, the Web's markup language, is specified in terms of the DOM. Layered above the abstract concepts defined in DOM Core, HTML also defines the meaning of elements. The HTML DOM includes such things as the className property on HTML elements, or APIs such as document.body.

The HTML specification also defines restrictions on documents; for example, it requires all children of a ul element, which represents an unordered list, to be li elements, as those represent list items. In general, it also forbids using elements and attributes that aren't defined in a standard.

Looking for the Document object, Window object, and the other DOM elements? Read the DOM documentation.

Other notable APIs

Browser support

As every web developer has experienced, the DOM is a mess. Browser support uniformity varies a lot from feature to feature, mainly because many important DOM features have very unclear, specifications (if any), and different web browsers add incompatible features for overlapping use cases (like the Internet Explorer event model). As of June 2011, the W3C and particularly the WHATWG are defining older features in detail to improve interoperability, and browsers in turn can improve their implementations based on these specifications.

One common, though perhaps not the most reliable, approach to cross-browser compatibility is to use JavaScript libraries, which abstract DOM features and keep their APIs working the same in different browsers. Some of the most widely used frameworks are jQuery, prototype, and YUI.

Etiquetas y colaboradores del documento

Colaboradores en esta página: Bluterg, jairoambunad, geinerjv
Última actualización por: Bluterg,