--- title: JavaScript slug: Web/JavaScript tags: - Aprender - JavaScript - 'l10n:priority' translation_of: Web/JavaScript ---
{{JsSidebar}}

JavaScript (JS) es un lenguaje de programación ligero, interpretado, o compilado justo-a-tiempo (just-in-time) con {{Glossary("First-class Function", "funciones de primera clase")}}. Si bien es más conocido como un lenguaje de scripting (secuencias de comandos) para páginas web, y es usado en muchos entornos fuera del navegador, tal como {{Glossary("Node.js")}}, Apache CouchDB y Adobe Acrobat. JavaScript es un lenguaje de {{Glossary ("Prototype-based programming", "programación basada en prototipos")}}, multiparadigma, de un solo hilo, dinámico, con soporte para programación orientada a objetos, imperativa y declarativa (por ejemplo programación funcional). Lee más en acerca de JavaScript.

Esta sección está dedicada al lenguaje JavaScript en sí, y no a las partes que son específicas de las páginas web u otros entornos host. Para información acerca de {{Glossary("API","APIs")}} específicas para páginas Web, consulta APIs Web y {{Glossary("DOM")}}.

El estándar para JavaScript es ECMAScript. A partir del 2012, todos los navegadores modernos soportan completamente ECMAScript 5.1. Los navegadores viejos soportan al menos ECMAScript 3. Desde Junio 17, 2015, ECMA International publico la sexta versión principal de ECMAScript, que oficialmente se llama ECMAScript 2015, y que inicialmente se denominó ECMAScript 6 o ES6. Desde entonces, los estándares ECMAScript están en ciclos de lanzamiento anuales. Esta documentación hace referencia a la última versión preliminar, que actualmente es ECMAScript 2020.

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

Quieres transformarte en un desarrollador web front-end?

Hemos reunido un curso que incluye toda la información esencial que necesitas para trabajar hacia tu objetivo.

Empieza aquí

Tutoriales

Aprende a programar en JavaScript con guías y tutoriales.

Para completos principiantes

Dirígete a nuestro tema del Area de Aprendizaje JavaScript si quieres aprender JavaScript pero no tienes experiencia previa de JavaScript o programación. Los módulos completos disponibles allí son los siguientes:

Primeros pasos en JavaScript
Responde algunas preguntas fundamentales tales como "¿qué es JavaScript?", "¿cómo se ve?", 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 JavaScript
Continúa nuestra cobertura de las características fundamentales clave de JavaScript, dirigiendo nuestra atención a los tipos de bloques de código que se encuentran comúnmente, tales como declaraciones condicionales, bucles, funciones y eventos.
Introducción a objetos JavaScript
Es importante comprender la naturaleza de la orientación a objetos en JavaScript si deseas ir más allá con tu conocimiento del lenguaje y la escritura de código más eficiente, por lo tanto, hemos proporcionado este módulo para ayudarte.
JavaScript asíncrono
Analiza el JavaScript asíncrono, por qué es importante y cómo se puede usar para manejar eficazmente las potenciales operaciones de bloqueo, tales como recuperar recursos de un servidor.
API web del lado del cliente
Explora qué son las APIs y cómo usar algunas de las APIs más comunes que encontrarás a menudo en tu trabajo de desarrollo.

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 u otro lenguaje.

Intermedio

Comprendiendo los frameworks JavaScript de lado del cliente
Los frameworks de JavaScript son una parte esencial del desarrollo web front-end moderno, ya que proporcionan a los desarrolladores herramientas probadas y comprobadas para crear aplicaciones web interactivas y escalables. Este módulo te brinda algunos conocimientos básicos sobre cómo funcionan los frameworks del lado del cliente y cómo encajan en tu conjunto de herramientas, antes de pasar a la serie de tutoriales que cubren algunos de los más populares en la actualidad.
Una reintroducción a JavaScript
Una descripción general para aquellos que piensan que saben JavaScript.
Estructuras de datos en JavaScript
Descripción general de las estructuras de datos disponibles en JavaScript.
Comparaciones de igualdad y similaridad
JavaScript proporciona tres diferentes operadores de comparación de valores: igualdad estricta usando ===, igualdad abstracta usando ==, y el método {{jsxref("Global_Objects/Object/is", "Object.is()")}}.
Cierres (clousures)

Un cierre es la combinación de una función y un entorno léxico dentro del cual se declaró esa función.

Avanzado

Herencia y la cadena de prototipos
Explicación de la herencia basada en prototipos ampliamente incomprendida y subestimada.
Modo estricto
El modo estricto define que no puedes usar ninguna variable antes de iniciarla. Es una variable restringida de ECMAScript 5, para un rendimiento más rápido y una depuración más fácil.
Arreglos escritos en JavaScript
Los arreglos escritos en JavaScript proveen un mecanismo para acceder a datos binarios sin formato.
Gestión de la Memoria
Ciclo de vida de la memoria y recolección de basura en JavaScript.
Modelo de Concurrencia y Bucle de Eventos
JavaScript tiene un modelo de concurrencia basado en un "bucle de eventos".

Referencia

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

Objectos Estándar
Conoce los objectos estándar integrados {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}}, {{jsxref("WeakSet")}}, y otros.
Expresiones y operadores
Aprende más sobre el comportamiento de los operadores de JavaScript {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}}, el operador de precedencia, y más.
Sentencias y declaraciones
Aprende cómo funciona {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}}, y más declaraciones y palabras reservadas de JavaScript.
Funciones
Aprende cómo trabajar con funciones de JavaScript para desarrollar tus aplicaciones.

Herramientas & recursos

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

Herramientas para Desarrolladores de Firefox
Consola Web, Generador de Perfiles de JavaScript, Depurador, y más.
Shells JavaScript
Un shell de JavaScript te permite probar rápidamente fragmentos de código JavaScript.
Aprende JavaScript
Un excelente recurso para aspirantes a desarrollador web — Aprendr JavaScript en un entorno interactivo, con lecciones cortas y pruebas interactivas, guiado por una evaluación automatizada. Las primeras 40 lecciones son gratis, y el curso completo está disponible por un pequeño pago único.
TogetherJS
La colaboración hecha fácil. Al agregar TogetherJS a tu sitio web, ¡tus usuarios pueden ayudarse mutuamente en un sitio web en tiempo real!
Stack Overflow
Preguntas en Stack Overflow etiquetadas con "JavaScript".
Versiones de JavaScript y notas de lanzamiento
Explora el historial de características y el estado de implementación de JavaScript.
JSFiddle
Edita JavaScript, CSS, HTML y obtén resultados en vivo. Usa recursos externos y colabora con tu equipo en línea.
Plunker
Plunker es una comunidad en línea para crear, colaborar y compartir sus ideas de desarrollo web. Edita sus archivos JavaScript, CSS, HTML y obtén resultados en vivo y estructuras de archivos.
JSBin

JSBin es una herramienta de depuración de desarrollo web colaborativo de código abierto.

Codepen

Codepen es otra herramienta colaborativa de desarrollo web usada como un espacio para mostrar resultados en vivo.

StackBlitz

StackBlitz es otra herramienta de depuración/visualización en línea, que puede alojar e implementar aplicaciones full-stack usando React, Angular, etc.