0.3 · Primer script y el REPL de Node

Primeros pasos

0.3Primer script y el REPL de Node

Objetivo: Ejecutar JavaScript en Node de dos formas (REPL y archivos .js), usar console.log y descubrir los objetos globales propios de Node.
Tiempo estimado: 8 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Dos modos: REPL para experimentar, archivo .js para desarrollar: node solo en interactivo, node app.js para lo duradero.
  • console.log muestra en el terminal: la herramienta básica para ver, trazar y depurar tus valores.
  • Globales Node, sin DOM: process, __dirname, global — y nunca window ni document en Node.

Minicaso hilado — Salim ejecuta su primer Hello

Salim, desarrollador junior en Argel, abre el terminal: escribe node solo y prueba 1 + 1 en el REPL, luego sale. Después crea app.js con un console.log de bienvenida, lo ejecuta con node app.js, muestra los argumentos recibidos y la carpeta actual. Cuando busca window por reflejo del front, Node le responde que eso no existe: comprende que aquí se accede al sistema, no a una página. Su cadena de ida y vuelta « editar, lanzar, leer » funciona.

Caso autónomo de esta sección: reaparece en el curso, el esquema, el script y el reto 48h de la sección 0.3.

1. REPL y archivo script

Dos formas de ejecutar JavaScript. El REPL (Read-Eval-Print Loop): al escribir node solo, se abre un entorno interactivo que evalúa cada línea al instante — perfecto para experimentar, probar una expresión o explorar una función (se sale con .exit). La forma principal: el archivo script. Se escribe el código en un .js y se lanza con node app.js — así se desarrollan aplicaciones reales, guardadas y versionables. Salim retiene: REPL para el borrador desechable, archivo para construir.

2. console.log y los globales Node

console.log() muestra en el terminal: el equivalente a « print », su herramienta básica para ver valores y depurar. Node proporciona objetos globales propios: process (argumentos con process.argv, entorno con process.env, salida con process.exit()), __dirname y __filename (carpeta y archivo actuales), y global. Salim los muestra uno por uno en su app.js en Argel y lee cada valor en el terminal.

3. Node no es un navegador

Diferencia clave con el front: en Node, sin window, document ni DOM — no hay página web. En cambio, acceso al sistema (archivos, red, procesos) vía módulos y globales. Un código que manipula el DOM no corre en Node, y viceversa. Salim pegó este recordatorio encima de su pantalla: « aquí, sin página — archivos, argumentos, procesos ». Dominar estos dos modos y estos globales es estar listo para escribir programas reales.

Error frecuente de interpretación: « El REPL basta para desarrollar, y window existe en todo JS ». No. El REPL es efímero: nada se guarda, el código largo es penoso — sirve para probar rápido, no para construir. Y window, document y el DOM no existen en Node: intentar manipular una página falla siempre. La buena práctica: desarrollar en archivos .js (guardados, releíbles, versionables) y reservar el REPL a pruebas desechables.
Ejecutar código Node Borrador desechable o trabajo duradero: elegir el modo adecuado. REPL node solo,interactivo, desechableArchivo .js node app.js,para desarrollarGlobales Node process,__dirname, global
Borrador desechable o trabajo duradero: elegir el modo adecuado.
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Salim, desarrollador junior en Argel, abre el REPL con node solo: prueba expresiones y sale con .exit. 2) Crea app.js con console.log, lo lanza con node app.js y muestra process.argv y __dirname. 3) Constata que window y document no existen: Node accede al sistema, no a una página. Lección: REPL para experimentar rápido, archivo para desarrollar de forma duradera.

🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Hello, Node !

console.log("Hello, Node !");
console.log(process.argv);
console.log(__dirname);
// ejecutar: node app.js Salim

Lectura: Salim ve su mensaje, la lista de argumentos y la carpeta actual.

Lección: la cadena editar, lanzar, leer funciona de principio a fin.

Vocabulario de la sección

REPL
Entorno interactivo abierto con node solo: lee, evalúa e imprime el JavaScript línea por línea; ideal para experimentar.

Ejemplo sencillo: Salim escribe 1 + 1 en el REPL y lee enseguida el resultado.

Lo que no es: un archivo guardado y versionable.

Reflejo: abrir el REPL para probar una idea antes de escribirla en archivo.

Ejecutar un archivo
Forma principal de trabajar: escribir el código en un .js y lanzarlo con node archivo.js, que ejecuta todo el archivo.

Ejemplo sencillo: Salim lanza node app.js y ve aparecer su Hello.

Lo que no es: escribir todo un programa línea por línea en el REPL.

Reflejo: en cuanto supere dos líneas, pasar a archivo.

console.log()
Función de visualización en el terminal; herramienta básica para ver valores, trazar la ejecución y depurar.

Ejemplo sencillo: Salim muestra cada variable con console.log antes de buscar más lejos.

Lo que no es: un resultado visual en una página web.

Reflejo: mostrar primero, suponer después.

process
Objeto global Node sobre el proceso en curso: argumentos (process.argv), entorno (process.env), salida (process.exit()).

Ejemplo sencillo: Salim lee el nombre pasado como argumento vía process.argv en Argel.

Lo que no es: window o document, que no existen en Node.

Reflejo: leer argv para toda pequeña herramienta de línea de comandos.

Globales Node vs navegador
Node ofrece process, __dirname, __filename y global con acceso al sistema; no tiene ni window, ni document, ni DOM.

Ejemplo sencillo: Salim sustituye document por __dirname cuando busca dónde está.

Lo que no es: el mismo entorno en ambos lados.

Reflejo: ante window is not defined, cambiar a lógica de sistema.

En la práctica — En la práctica — Ejecutar su primer código Node

  1. Abra el REPL con node solo; pruebe algunas expresiones y salga con .exit, como Salim.
  2. Cree app.js con un console.log de bienvenida y láncelo con node app.js.
  3. Muestre process.argv y __dirname desde el archivo; relance con un argumento (node app.js Salim).
  4. Constate que window y document no existen en Node; en cambio se accede al sistema.
Ejecuta JavaScript en Node de dos formas (REPL interactivo y archivos .js), usa console.log y descubre los objetos globales propios de Node.

Script listo para decir — contar su primera ejecución (30 s)

« Probé en el REPL con node solo, luego escribí app.js con un console.log. Con node app.js Salim, veo mi mensaje, mis argumentos y mi carpeta actual. Y verifiqué: sin window aquí, hablamos con el sistema. »

Para decir mostrando el terminal: primero el REPL, luego la ejecución del archivo con argumento.

Modelo copiar-pegar — mi primer app.js

const prenom = process.argv[2] || "Salim";
console.log("Hello, Node ! Bienvenue " + prenom + ".");
console.log("Dossier courant : " + __dirname);
console.log("Arguments recus : " + JSON.stringify(process.argv.slice(2)));

Sin argumento

Lance node app.js sin nada: el modelo muestra Salim por defecto, luego relance con su nombre para ver cambiar process.argv.

Explorador REPL

Antes del archivo: pruebe cada línea del modelo una por una en el REPL, luego ensámblelas en app.js — el borrador se vuelve duradero.

Pareja en Argel

Salim dicta, su colega escribe: uno lee el terminal en voz alta (mensaje, carpeta, argumentos), el otro verifica cada valor mostrado.

Reflejo depuración

Programa mudo: añada un console.log tras cada etapa (entrada, cálculo, salida) y relance — el depurador más viejo sigue siendo el más rápido.

✓ Buenas prácticas

  • Use el REPL para probar una idea o explorar una función.
  • Desarrolle en archivos .js (guardados, versionables).
  • Conozca process, __dirname y global desde el inicio.

✗ Errores frecuentes

  • Escribir un programa entero en el REPL efímero.
  • Buscar window o document en Node (no existen).
  • Olvidar que console.log es la herramienta básica de depuración.

Puntos clave

  • Dos formas de ejecutar: el REPL (node solo, para EXPERIMENTAR) y los archivos script (node app.js, para DESARROLLAR).
  • console.log() = la visualización en terminal: herramienta básica para ver valores y depurar.
  • Objetos globales Node: process (argv, env, exit), __dirname y __filename, global — específicos de Node.
  • Diferencia clave: SIN window, document ni DOM en Node; en cambio, acceso al sistema.

Reto 48h — aplique mañana

Cree app.js con el modelo de Salim, láncelo con y sin argumento y pruebe una línea del archivo en el REPL.

Lista de salida de la sección
  • Lanzo el REPL y un archivo .js explicando cuándo usar cada uno.
  • Mi app.js muestra mensaje, argumentos y carpeta actual.
  • Cito los globales Node y la ausencia de window y document.
Autoevaluación 1-5: ¿elijo REPL o archivo según el uso?Autoevaluación 1-5: ¿he mostrado argv y __dirname sin ayuda?

Preguntas frecuentes

¿Qué diferencia hay entre el REPL y la ejecución de un archivo, y cuándo usar cada uno?

El REPL (node solo) evalúa línea por línea con resultado inmediato: ideal para experimentar (probar una función, explorar un módulo, verificar una idea). Es efímero: nada se guarda, inadecuado para código largo. La ejecución de archivo (node app.js) ejecuta todo un .js guardado, editable en VS Code y versionable: es el modo del trabajo real (servidor, script, herramienta). En la práctica: se desarrolla en archivos y se abre el REPL como borrador puntual antes de integrar.

¿Qué cambia realmente entre el JavaScript del navegador y el de Node?

El lenguaje es idéntico (sintaxis, tipos, funciones, clases, Promises, async/await — mismo motor V8). Lo que cambia es el entorno: sin DOM en Node (ni document, ni window, ni elementos HTML), pero un acceso al sistema prohibido al navegador (archivos, red, procesos vía process, sistema vía módulos). Los globales difieren (process, __dirname, global frente a window, document) y Node tiene su ecosistema npm. Venir del front es una ventaja: ya se conoce el idioma, queda aprender el entorno Node.

Comprueba tu comprensión

¿Cuándo usar el REPL en lugar de un archivo .js?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 0Preguntas inéditas y más difíciles para validar tus conocimientos