JavaScript
==========

**JavaScript** (**JS**) es un lenguaje de programación ligero, interpretado, o compilado justo-a-tiempo (just-in-time) con 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 Node.js, Apache CouchDB y Adobe Acrobat JavaScript es un lenguaje de 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 APIs específicas para páginas Web, consulta APIs Web y DOM.

El estándar para JavaScript es ECMAScript (ECMA-262) y la especificación de la API para la Internacionalización de ECMAScript (ECMA-402). La documentación en MDN está basada enteramente en las últimas versiones preliminares de ECMA-262 y ECMA-402. Y en algunos casos donde algunas propuestas para nuevas funciones para ECMAScript ya hayan sido implementadas en los navegadores, la documentación y algunos artículos de MDN pueden hacer uso de algunas de estas funciones.

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 arreglos.

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 `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 tipados en JavaScript

Los arreglos tipados 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.

Objetos Estándar

Conoce los objectos estándar integrados `Array`, `Boolean`, `Date`, `Error`, `Function`, `JSON`, `Math`, `Number`, `Object`, `RegExp`, `String`, `Map` (en-US), `Set`, `WeakMap`, `WeakSet` y otros.

Expresiones y operadores

Aprende más sobre el comportamiento de los operadores de JavaScript `instanceof`, `typeof`, `new`, `this`, el operador de precedencia y más.

Sentencias y declaraciones

Aprende cómo funciona `do-while`, `for-in`, `for-of`, `try-catch`, `let`, `var`, `const`, `if-else`, `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.

Consola de Javascript

Una consola de JavaScript te permite probar rápidamente fragmentos de código JavaScript.

Aprende JavaScript

Un excelente recurso para aspirantes a desarrollador web — Aprende 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

Colaboración 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".

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.