JavaScript

Traducción en progreso.

JavaScript (JS) es un lenguaje de programación ligero e interpretado, orientado a objetos con funciones de primera clase. Aunque es más conocido como el lenguaje de scripting para páginas web, muchos entornos no relacionados con el navegador también lo usan, tales como node.js, Apache CouchDB y Adobe Acrobat. Es un lenguaje script multiparadigma, basado en prototipos, dinámico, soporta estilos estilos orientados a objetos, imperativos y declarativos. Leer más sobre JavaScript.

Esta sección está dedicada al lenguaje JavaScript en sí mismo, y no a las partes que son específicas de las páginas web u otros entornos de hospedaje. Para obtener información sobre APIs específicas de las páginas web, consulte DOM y las APIs WEB.

El estándar de JavaScript es ECMAScript. Desde el 2012, todos los navegadores modernos soportan completamente ECMAScript 5.1. Los navegadores más antiguos soportan por lo menos ECMAScript 3. El 17 de Julio de 2015, ECMA International publicó la sexta versión de ECMAScript, la cual es oficialmente llamada ECMAScript 2015, y fue inicialmente nombrada como ECMAScript 6 o ES6. Desde entonces, los estándares ECMAScript están en ciclos de lanzamiento anuales. Esta documentación se refiere a la última versión del borrador, que actualmente es ECMAScript 2019.

JavaScript no debe ser confundido con el lenguaje de programación Java. Ambos "Java" y "Javascript" son marcas registradas de Oracle en Estados Unidos y otros países. Sin embargo, los dos lenguajes de programación tienen sintaxis, semántica y usos muy diferentes.

Tutoriales

Aprende cómo programar en JavaScript con guías y tutoriales.

Para completos novatos

Adéntrate en nuestro tema de Aprendizaje de JavaScript si quieres aprender JavaScript pero no tienes experiencia previa en este lenguaje o en programación. Los siguientes son los módulos disponibles:

Primeros pasos en JavaScript
Responde a algunas preguntas fundamentales como "¿qué es JavaScript?", "¿qué aspecto tiene?", y "¿qué puede hacer?", junto con la discusión de características clave de JavaScript como variables, cadenas, números y matrices.
Bloques de construcción de JavaScript
Continúa nuestra cobertura de las principales características fundamentales de JavaScript, centrando nuestra atención en los tipos de bloques de código comúnmente encontrados como declaraciones condicionales, bucles, funciones y eventos.
Presentando a los Objetos en JavaScript
La naturaleza orientada a objetos de JavaScript es importante de entender si quieres ir más allá con tu conocimiento del lenguaje y escribir un código más eficiente, por lo tanto hemos proporcionado este módulo para ayudarte.

Guía de JavaScript

Guía de JavaScript
Una guía mucho más detallada del lenguaje JavaScript, dirigida a aquellos con experiencia previa en programación, ya sea en JavaScript o en otro lenguaje.

Intermediario

APIs web del lado del cliente
Cuando escribas JavaScript del lado del cliente para sitios web o aplicaciones, no llegarás muy lejos antes de que comiences a usar APIs — interfaces para manipular diferentes aspectos del navegador y sistema operativo en el cual el sitio esta corriendo, o incluso datos de otra web o servicios. En este módulo exploraremos qué son las APIs y cómo usar algunas de las más comunes APIs con las cuales te encontrarás en tu trabajo de desarrollo.
Una re-introducción a JavaScript
Un resumen para esos que piensan que lo saben todo sobre JavaScript.
Estructura de datos de JavaScript
Resumen de las estructuras de datos disponibles en JavaScript.
Comparación entre igual y similar
JavaScript provee tres operaciones diferentes de comparación: comparación estricta usando ===, comparación floja usando ==, y el método Object.is().

Avanzado

Herencia y la cadena de prototipos
Explicación de la ampliamente incomprendida y sobre-estimada herencia basada en prototipos.
Modo estricto
El modo estricto define que tú no puedas usar ninguna variable antes de inicializarse. Es una variante restringida de ECMAScript5 para un mejor rendimiento y una mejor facilidad para la depuración.
Typed Arrays de JavaScript
Los typed arrays de JavaScript proveen un mecanismo para acceder a datos puramente binarios.
Control de memoria
El ciclo de vida de la memoria y la recolección de basura en JavaScript.
Modelo de concurrencia y ciclo de eventos
JavaScript tiene un modelo de concurrencia basado en un "ciclo de eventos".

Referencias

Explora la documentación completa de la referencia de JavaScript.

Objetos Estándar
Conoce los objetos estándares prefabricados Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String, Map, Set, WeakMap, WeakSet, y otros.
Expresiones y operadores
Aprende más sobre el comportamiento de los operadores de JavaScript instanceof, typeof, new, this, la prioridad de los operadores y más.
Sentencias y declaraciones
Aprende do-while, for-in, for-of, try-catch, let, var, const, if-else, switch y más declaraciones de JavaScript y sus palabras claves.
Funciones
Aprende cómo trabajas con las funciones de JavaScript para desarrollar tus aplicaciones.

Herramientas y recursos

Herramientas útiles para escribir y depurar tu código de JavaScript.

Herramientas de desarrollador de Firefox
Scratchpad, Consola Web, JavaScript Profiler, Depurador, y mas.
Shells de JavaScript
Un shell de JavaScript te permite probar pequeños fragmentos de código escritos con este lenguaje.
TogetherJS
La colaboración se hace fácil. Añadiendo TogetherJS a su sitio, sus usuarios pueden ayudarse mutuamente en un sitio web en tiempo real!
Stack Overflow
Las preguntas de Stack Overflow categorizadas bajo la etiqueta "JavaScript".
Versiones de JavaScript y notas de publicaciones
Explora el historial de características del lenguaje y el estatus de su implementación.
JSFiddle
Edita JavaScript, CSS, HTML y obtén resultados en vivo. Usa recursos externos y colabora con tu equipo en tiempo real.
Plunker
Plunker es una comunidad online para crear, colaborar y compartir tus ideas de desarrollo web. Edita tus archivos JavaScript, CSS, HTML y obtén resultados en vivo y la estructura de los archivos.
JSBin
JS Bin es una herramienta de depuración de desarrollo web colaborativo de código abierto.
Codepen
Codepen es otra herramienta de desarrollo web colaborativa usada como prueba de fragmentos de código en vivo.
StackBlitz
StackBlitz es otra herramienta en línea/herramienta depuración, que puede alojar y desarrollar aplicaciones completas usando React, Angular, etc.