6/9/25, 13:15 Introducción a JavaScript | web.
dev
Gracias por seguir Google I/O. Mira contenido a pedido
([Link]
Se usó la API de Cloud Translation (//[Link]/translate/?hl=es-419) Switch to English
para traducir esta página.
Introducción a JavaScript
A pesar de su nombre, JavaScript solo está relacionado con Java, ya que ambos comparten
algunos similitudes sintácticas. La sintaxis de JavaScript en su desarrollo inicial fue se inspiró
vagamente en la sintaxis de Java y se llamó "LiveScript" cuando lo primero se lanzó en una versión
beta de Netscape Navigator en 1995, de las otras ofertas nombradas de Netscape y como
testimonio del hecho de que se publica en el navegador. Microsoft lanzó su propia implementación
de JavaScript "JScript", poco tiempo después con Internet Explorer 3.0.
Netscape envió este primer trabajo a Ecma International ([Link] una
organización que desarrolla y publica estándares técnicos para formalizar y detallar cómo de
escritura de secuencias de comandos debe ser comprendido por otros navegadores. En 1997,
Ecma Lanzamiento internacional ECMA-262, que estandariza la primera versión de un scripting de
lenguaje común llamado ECMAScript. ECMAScript es el estándar que informa la creación lenguajes
de programación más específicos, como el trabajo posterior de Microsoft en el JScript, el
ActionScript de Adobe, y JavaScript en sí.
Esta distinción es importante al momento de debatir aspectos y características específicos de
JavaScript: “ES5” se refiere al primer gran "control de versiones" lanzamiento de la ECMAScript en
2009, tras años de desarrollo más fragmentado. “ES6” (o “ES2015”) es la abreviatura de los
estándares establecidos por la sexta edición de ECMAScript, lanzado en 2015. Después de ES6, las
nuevas ediciones de ECMAScript estándar se lanzan anualmente, con los cambios y adiciones de
cada edición a los que se hace referencia por año en "ES2016" o “ES2017”.
[Link] 1/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
Las reglas básicas
A diferencia de los lenguajes compilados, JavaScript no se traduce a partir del código que escribe
una persona en un formato que el navegador pueda comprender. Se envía una secuencia de
comandos al navegador. junto con recursos como lenguaje de marcado, imágenes y hojas de estilo,
el navegador lo interpreta tal como se escribió: como una secuencia legible de caracteres Unicode,
analizadas de izquierda a derecha y de arriba abajo.
Cuando un intérprete de JavaScript recibe una secuencia de comandos, primero realiza Análisis
léxico, que analiza la larga cadena de caracteres que conforman una secuencia de comandos y
convertirlo en los siguientes elementos de entrada discretos:
Tokens
Caracteres de control de formato
Terminadores de línea
Comentarios
Espacio en blanco ([Link] (casi siempre significa
tabulaciones y espacios).
Los resultados de una secuencia de comandos no se conservarán después de volver a cargarla o
salir de la página actual, a menos que incluya instrucciones explícitas para hacerlo en el guion.
En términos generales, las aplicaciones de JavaScript constan de sentencias y expresiones.
Declaraciones
Una sentencia es una unidad de instrucción compuesta por una o más líneas de código que
representan una acción. Por ejemplo, puedes usar la siguiente instrucción para asignar un valor a
una variable llamada myVariable:
let myVariable = 4;
myVariable;
> 4
[Link] 2/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
Para interpretarse correctamente, las instrucciones deben terminar con punto y coma. Sin
embargo, estos punto y coma no siempre es obligatorio cuando escribes JavaScript. Una función
llamada la inserción automática de punto y coma
([Link] permite que una línea el salto después de una
instrucción completa se tratará como punto y coma si hay una punto y coma causaría un error.
ASI es la corrección de errores, no un aspecto permisivo de JavaScript en sí. Porque confiar
demasiado en esta corrección de errores puede generar una ambigüedad que rompa tu código,
aún debes terminar manualmente cada sentencia con un punto y coma.
Declaraciones de bloqueo
Una sentencia de bloque agrupa cualquier cantidad de sentencias y declaraciones dentro de un
par. de llaves ({}). Te permite combinar sentencias en lugares donde JavaScript espera solo una.
Con más frecuencia, verás sentencias de bloqueo al lado de de flujo de control
([Link] como if:
if ( x === 2 ) {
//some behavior;
}
Expresiones
Una expresión es una unidad de código que da como resultado un valor y, por lo tanto, puede
cuando se espera un valor. 2 + 2 es una expresión que da como resultado el valor 4:
2 + 2;
> 4
El “operador de agrupación”, un par de paréntesis de cierre, se usa para agrupar partes de una
expresión para asegurarte de que una parte de ella se se evalúe como una sola unidad. Por ejemplo,
puedes usar un operador de agrupación para anular el orden matemático de las operaciones
[Link] 3/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
([Link] o para mejorar la legibilidad del
código:
2 + 2 * 4;
> 10
( 2 + 2 ) * 4;
> 16
let myVariable = ( 2 + 2 );
myVariable;
> 4
Escritura poco segura
JavaScript es un lenguaje de escritura débil, lo que significa que un valor de datos no necesita se
marquen explícitamente como un tipo de datos ([Link]
específico. A diferencia de un lenguaje con escritura estricta, JavaScript puede inferir el tipo
deseado a partir del el contexto de un valor y lo conviertes en ese tipo. Este proceso se denomina
coerción de tipos.
Por ejemplo, si agregas un número a un valor de cadena en un idioma con tipado fuerte, como
Python, el resultado es un error:
>>> "1" + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
En lugar de mostrar un error, JavaScript fuerza el valor numérico a una cadena y concatena los dos
valores, el comportamiento previsto más probable al agregar cualquier valor a una cadena:
[Link] 4/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
"1" + 1;
> "11"
Los tipos de datos también se pueden coercionar de forma explícita. En el siguiente ejemplo, se
fuerza la el valor numérico 100 a un valor de cadena de "100" con la biblioteca integrada de
JavaScript Método toString:
let myVariable = 100;
typeof myVariable;
> "number"
myVariable = [Link]();
> "100"
typeof myVariable;
> "string"
Distinción entre mayúsculas y minúsculas
A diferencia del HTML y de la mayoría de los CSS, JavaScript distingue entre mayúsculas y
minúsculas. Esto significa que siempre debes usar mayúsculas en todo de forma coherente, desde
propiedades y métodos integrados en el lenguaje con los identificadores que definas tú mismo.
[Link]( "Log this." );
> Log this.
[Link]( "Log this too." );
> Uncaught TypeError: [Link] is not a function
const myVariable = 2;
myvariable;
> Uncaught ReferenceError: myvariable is not defined
[Link] 5/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
myVariable;
> 2
Espacio en blanco
JavaScript no es sensible a los espacios en blanco. Esto significa que el intérprete ignora la cantidad
y el tipo (tabulaciones o espacios) de los espacios en blanco utilizados.
[Link]( "Log this" );[Link]("Log this too");
> "Log this."
> "Log this too."
Sin embargo, la presencia del espacio en blanco puede ser significativa como separador entre
tokens léxicos:
let x;
[tokens: [let] [x] ]
letx;
> Uncaught ReferenceError: letx is not defined
[tokens: [letx] ]
Cuando se usa un espacio en blanco para separar tokens léxicos significativos, el analizador ignora
la cantidad y el tipo de espacio en blanco:
let x = 2;
[Link] 6/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
[tokens: [let] [x] [=] [2] ]
Lo mismo ocurre con los saltos de línea, aunque hay casos en los que pueden causar problemas
cuando finaliza una sentencia de forma prematura
([Link]
let x
=
2;
[tokens: [let] [x] [=] [2] ]
Desde el punto de vista estilístico, algunos tipos de sentencias suelen ocupar una sola línea:
let x = 1;
let y = 2;
Algunas sentencias suelen usar varias líneas:
if ( x == 2 ) {
//some behavior;
}
Sin embargo, estas convenciones son solo para facilitar la lectura. JavaScript interpreta los
ejemplos anteriores de la misma manera que lo siguiente:
let x=1;let y=2;
if(x==2){}
[Link] 7/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
Debido a esto, un proceso automatizado que quita los espacios en blanco no esenciales de
archivos de secuencia de comandos para reducir el tamaño de transferencia es un paso común en
la preparación de JavaScript para un entorno de producción, junto con otras optimizaciones.
El uso de caracteres de espacio en blanco en JavaScript depende en gran medida del autor y las
preferencias de los encargados de mantenimiento. Proyectos de JavaScript con varios
desarrolladores Contribuir código a menudo sugiere o aplica ciertas convenciones de espacio en
blanco a garantizar un formato coherente del código, por ejemplo, el uso de tabulaciones o
espacios para aplicar sangría a las sentencias anidadas:
let myVariable = 10;
if ( typeof myVariable === "number" ) {
[Link]( "This variable is a number." );
if( myVariable > 5 ) {
[Link]( "This variable is greater than five." );
}
}
> "This variable is a number."
> "This variable is greater than five."
Verifica tus conocimientos
¿Qué es una expresión?
Un grupo de sentencias y declaraciones. check_box_outline_blank
Un comentario que explica lo que hace el código. check_box_outline_blank
Una unidad de código que da como resultado un valor. check_box_outline_blank
[Link] 8/9
6/9/25, 13:15 Introducción a JavaScript | [Link]
JavaScript distingue mayúsculas de minúsculas.
Verdadero check_box_outline_blank
Falso check_box_outline_blank
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons
([Link] y los ejemplos de código están sujetos a la licencia Apache 2.0
([Link] Para obtener más información, consulta las políticas del sitio de
Google Developers ([Link] Java es una marca registrada de Oracle o
sus afiliados.
Última actualización: 2024-03-31 (UTC)
[Link] 9/9