Qué es JavaScript
En resumen: JavaScript es el lenguaje del navegador web, y con Node.js también funciona en servidores y en tu computadora: Node.js traduce el archivo y lo ejecuta.
Problema
Por qué JavaScript
Hay cientos de lenguajes de programación. Cada uno sirve para algo, pero no todos sirven igual de bien para todo. Antes de dedicar meses a uno de ellos, es justo saber dónde lo vas a usar.
JavaScript es el lenguaje del navegador web. Todos los navegadores lo ejecutan, y no necesitas instalar nada:
- sitios web: los botones, los menús, los formularios y todo lo que cambia en la página sin recargarla;
- servidores: con Node.js el mismo lenguaje funciona también fuera del navegador, en un servidor y en tu computadora;
- aplicaciones de escritorio y para el teléfono: el editor Visual Studio Code, por ejemplo, está escrito en TypeScript (JavaScript con tipos) y funciona como un programa de JavaScript;
- las herramientas de los desarrolladores web: casi todo lo que se usa para construir un sitio web está escrito en JavaScript.
JavaScript existe desde 1995. Su nombre se parece a Java, pero los dos lenguajes no tienen nada en común, aparte de una sintaxis parecida.
La idea
Del texto al programa
El programa que escribes es texto normal en un archivo. Aquí tienes un programa completo:
console.log("El pedido n.º 1024 ha sido aceptado.");El pedido n.º 1024 ha sido aceptado.Sí, ese es todo el programa: una línea. Llegaremos a las palabras que hay en él en la lección «Tu primer programa». Aquí importa otra cosa: el procesador de la computadora no entiende este texto. Algo tiene que traducirlo.
- Escribes el código fuente en un archivo llamado
shop.js. - Lo ejecutas con el comando
node shop.js. Node.js revisa cómo está escrito todo el archivo y lo traduce a bytecode. Esto pasa en la memoria, cada vez que ejecutas el programa: no hay un paso de compilación aparte que tengas que lanzar tú. - Node.js ejecuta el bytecode, y además traduce a código máquina las partes que se ejecutan a menudo, para que vayan más rápido.
Hay un Node.js para Windows, macOS y Linux, y los navegadores ejecutan el mismo lenguaje por su cuenta. Por eso puedes llevar el propio shop.js a otra computadora y funciona sin ningún cambio. Esto se llama independencia de la plataforma.
console.log("El pedido n.º 1024 ha sido aceptado.");Paso a paso, en palabras
- Escribes el código fuente: texto normal en el archivo shop.js.
- No hay un compilador aparte que tengas que lanzar: Node.js leerá el archivo por sí mismo.
- Así que a otra computadora va el propio shop.js, no un archivo compilado.
- El mismo shop.js va sin cambios a Windows, macOS y Linux.
- Node.js en cada sistema revisa el archivo, lo traduce y lo ejecuta. La salida es la misma.
Más precisamente, para curiosos
- La revisión abarca todo el archivo. Si falta un paréntesis en la segunda línea, el programa no imprime nada, ni siquiera la primera línea: Node.js se detiene con un
SyntaxErrorantes de ejecutar nada. Un nombre mal escrito (totlen lugar detotal) es distinto. Ese error (ReferenceError) aparece solo cuando el programa llega a su línea, y las líneas de arriba ya se han ejecutado. - Node.js está construido sobre V8, el motor de JavaScript del navegador Chrome. V8 traduce partes del programa a código máquina mientras se ejecuta, y optimiza más las partes que se ejecutan más a menudo. Esto se llama compilación JIT (just-in-time, «justo a tiempo»).
- La memoria. Cada programa ocupa memoria para sus datos. En lenguajes como C, el programador libera la memoria que ya no hace falta, y si se le olvida o se equivoca, el programa empieza a ocupar cada vez más memoria o se cae. JavaScript lo hace por ti: el recolector de basura (garbage collector) encuentra los datos a los que el programa ya no puede llegar y libera su memoria.
La idea
Qué aprenderás
El curso está formado por módulos. Cada módulo usa solo cosas de los anteriores:
- Fundamentos del lenguaje: variables, entrada y salida, cálculos, condiciones, bucles, arrays, texto.
- Funciones: código que escribes una vez y llamas muchas veces.
- Clases y objetos: tus propios tipos, como
OrderoStudent. - Herencia y polimorfismo: lo que comparten varios tipos, en un solo lugar.
- Errores y excepciones: qué hace el programa cuando algo sale mal.
- Texto y archivos: trabajar con cadenas, patrones de búsqueda (regex) y archivos.
- Colecciones: arrays, pila, cola,
Map,Set. - JavaScript moderno: funciones flecha, procesar datos por pasos y las novedades del lenguaje.
- Programas del mundo real: pruebas, concurrencia, red, bases de datos.
Fuera del camino principal hay juegos y proyectos: programas completos que construyes paso a paso.
En este curso JavaScript funciona con Node.js, en la terminal, no en una página del navegador. Así aprendes el lenguaje en sí, sin HTML y CSS alrededor. Trabajar con una página en el navegador resulta fácil después, porque el lenguaje es el mismo.
La idea
Cómo se aprende aquí
Cada lección es una serie de tarjetas, una idea por tarjeta. Normalmente empieza con un problema de la práctica y después muestra qué pasa en realidad, a menudo con una animación junto al código. Luego viene una pequeña tarea: predecir la salida, completar lo que falta, encontrar el error. Al final hay un ejercicio que resuelves en tu propio editor y un test corto.
Tu progreso se guarda en el navegador: la lección continúa desde la tarjeta a la que llegaste.
El mapa de todo el curso está en la página principal del curso.
No te saltes los ejercicios. Leer código y escribir código son habilidades distintas, y la segunda solo se consigue escribiendo.
La idea
Los errores son parte del trabajo
Tus primeros programas a menudo no arrancarán. Se te olvidarán unas comillas o una llave, y Node.js se negará a ejecutar el archivo.
No es una nota sobre ti. El mensaje de error está para ayudar: te dice en qué línea está el problema y cuál es. Los programadores con experiencia también ven estos mensajes todos los días. La diferencia es que han aprendido a leerlos con calma. Empezaremos a leerlos en la primera lección con código.
Si algo no sale durante mucho rato, déjalo y vuelve un poco más tarde. A menudo ves el error enseguida cuando lo miras de nuevo.
En resumen
En resumen
- JavaScript funciona en todos los navegadores, y con Node.js también en el servidor y en tu computadora.
- El código fuente (
shop.js) lo ejecutas connode shop.js: Node.js revisa el archivo, lo traduce y lo ejecuta. El mismo archivo funciona en cualquier sistema. - La memoria la libera automáticamente el recolector de basura.
- El curso está formado por módulos, y cada lección por tarjetas. Los ejercicios se hacen en tu propio editor.
- Un mensaje de error es una ayuda, no una nota.
Lo siguiente es preparar tu computadora: qué instalar para poder ejecutar tu primer programa.