Unidad 1 · Lecciones 001-012
Introduccion al Curso y JavaScript
Antes de escribir logica necesitas poder ejecutar codigo y ver su resultado. Esta unidad te da exactamente eso: como se enlaza JavaScript a una pagina, donde aparecen los mensajes, como dejar notas en el codigo y que habitos adoptar desde el primer dia.
🎯 Objetivo de aprendizaje
Al terminar esta unidad seras capaz de crear una pagina HTML, enlazarle un archivo
.js externo, escribir mensajes en la consola del navegador, comentar tu codigo
y reconocer las convenciones basicas de estilo que se usan en el resto del curso.
1.1 Que es JavaScript y por que empezar aqui
JavaScript es el lenguaje de programacion de la web. Durante muchos anos solo funcionaba dentro del navegador; hoy tambien construye aplicaciones de escritorio, servidores y apps moviles. Para este curso nos interesa su terreno original: hacer que una pagina reaccione.
Una pregunta que aparece pronto es: ¿que compilador necesito? Ninguno. JavaScript ya viene incluido en todos los navegadores, asi que tu navegador es a la vez el entorno de ejecucion y la herramienta de pruebas. No hay nada que instalar para empezar.
💡 Idea clave
Un lenguaje de programacion se distingue por tener variables. HTML no las tiene, por eso HTML no es un lenguaje de programacion. JavaScript si las tiene, y las veremos en la Unidad 2.
Como esta pensado el curso
El material original combina teoria y proyectos, con una idea repetida en varias lecciones: no tiene sentido aprender la teoria si no la pones en practica. Estas 14 unidades cubren la parte de fundamentos; los proyectos del curso (carrito de compras, cotizador de seguros, app del clima, etc.) se apoyan despues en todo lo que veras aqui.
📎 Nota sobre los materiales descargables
Las lecciones 004 y 005 del curso original explican que existen dos carpetas de descarga: una con los archivos de inicio (mayormente vacios, uno por video) y otra con los archivos finalizados, que contienen el codigo tal como queda al final de cada leccion, para comparar si algo no te funciona. En este recurso web ese papel lo cumplen los bloques de codigo: cada uno se puede copiar, y muchos ejecutar aqui mismo.
1.2 El editor y las extensiones recomendadas
El curso usa Visual Studio Code. Si ya tienes otro editor puedes continuar con el, pero estas extensiones te ahorraran tiempo:
- Live Server
- La mas importante. Boton derecho sobre el HTML → Open with Live Server. Abre la pagina en el navegador y la recarga sola cada vez que guardas.
- Bracket Pair Colorizer
- Pinta de colores distintos cada pareja de llaves
{ }, para ver de un vistazo donde abre y cierra cada bloque.
- JavaScript Code Snippets
- Atajos que escriben estructuras completas por ti a partir de pocas letras.
- Un tema e iconos
- Temas de color y paquetes de iconos de archivo. Puramente estetico, pero ayuda a distinguir tipos de archivo.
⚠ Si Live Server abre el navegador equivocado
En VS Code ve a Preferencias → Settings, busca Live Server y localiza la opcion
Custom Browser. Ahi eliges el navegador con el que quieres trabajar.
1.3 Hola Mundo: JavaScript dentro del HTML
Hay dos formas de anadir JavaScript a una pagina: dentro del propio HTML con la
etiqueta <script>, o en un archivo externo. Empecemos por la primera,
que es la mas directa para ver algo funcionando.
Paso a paso
- Crea un archivo
index.htmlcon la estructura basica de una pagina. - Justo antes de cerrar
</body>, escribe una etiqueta<script>. - Dentro de ella llama a
alert(), una funcion que ya existe en el lenguaje.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Introduccion a JavaScript</title>
</head>
<body>
<h1>Mi primera pagina con JavaScript</h1>
<!-- El navegador lee el HTML de arriba abajo.
Al llegar aqui dice: "esto es JavaScript, lo trato distinto". -->
<script>
alert('Hola Mundo');
</script>
</body>
</html>
Que hace cada parte
<script>le avisa al navegador de que lo que viene ya no es HTML sino codigo a ejecutar.alertes una funcion nativa: viene incluida en el lenguaje, no la escribes tu.'Hola Mundo'es el texto que quieres mostrar; va entre comillas.- El
;final marca el fin de la instruccion (volveremos sobre esto en 1.8).
Que ocurre al ejecutarlo
Al guardar y recargar, el navegador muestra una ventana emergente con el texto Hola Mundo. Cada navegador dibuja ese aviso a su manera: Chrome, Firefox y Safari se ven distintos entre si, pero el comportamiento es el mismo.
💡 Donde colocar el script
Tecnicamente funciona en cualquier sitio: dentro del <head>, en medio del
<body> o al final. Se recomienda ponerlo justo antes de cerrar el
</body>: el navegador va mostrando la pagina conforme la lee, y los
scripts suelen ser lo mas pesado. Si se cargan al final, el usuario ve el contenido antes.
Mas adelante existen los atributos async y defer para afinar esto todavia mas.
1.4 Mover JavaScript a su propio archivo
Escribir el codigo dentro del HTML sirve para probar, pero tiene un problema: si tu sitio tiene varias paginas, tendrias que copiar y pegar el mismo codigo en todas. Duplicar codigo es la forma mas rapida de que un proyecto se vuelva imposible de mantener.
La solucion: un archivo externo
- Crea una carpeta llamada
js(algunos la llamanscripts; es preferencia personal). - Dentro crea
app.js. - Mueve ahi tu codigo, sin las etiquetas
<script>. - En el HTML, enlaza el archivo con el atributo
src.
// Aqui ya NO se escribe <script>.
// El navegador sabe que este archivo
// entero es JavaScript.
alert('Hola Mundo');
<script src="js/app.js"></script>
</body>
Detalle importante: la ruta
src funciona igual que en las imagenes (<img src="...">): indica
donde esta el archivo. Usa siempre una ruta relativa al documento
(js/app.js), nunca una direccion completa con 127.0.0.1. Asi el proyecto
sigue funcionando cuando lo subas a un servidor, sin tocar nada.
✓ Ventaja concreta
Si creas una segunda pagina, nosotros.html, solo copias esa unica linea
de <script> y ya esta usando el mismo codigo. Un cambio en app.js
se refleja en todas las paginas a la vez.
1.5 Lo que se puede hacer con dos lineas
Antes de entrar en la teoria, vale la pena ver de que es capaz el lenguaje. No te preocupes por la sintaxis todavia: todo lo que aparece aqui se explica en las unidades siguientes.
const nombre = prompt('¿Cual es tu nombre?');
document.querySelector('.contenido').innerHTML = `${nombre} esta aprendiendo JavaScript moderno`;
Que hace cada parte
| Fragmento | Que hace | Se explica en |
|---|---|---|
const nombre | Crea una variable: una caja con nombre donde guardar un dato que puede cambiar de una visita a otra. | Unidad 2 |
prompt(...) | Funcion nativa que muestra una ventana con un campo de texto y devuelve lo que escriba la persona. | Unidad 9 |
document.querySelector('.contenido') | Busca en el HTML el elemento que tenga la clase contenido. La sintaxis es la misma que en CSS. | Unidad 13 |
.innerHTML = ... | Reemplaza el contenido de ese elemento por lo que le pongas a la derecha. | Unidad 13 |
` ${nombre} ... ` | Template string: permite mezclar texto fijo con el valor de una variable. | Unidad 3 |
Que ocurre al ejecutarlo
La pagina pregunta el nombre. Si escribes Juan y aceptas, el contenido de la pagina pasa a decir «Juan esta aprendiendo JavaScript moderno». Si lo abre otra persona y escribe Pablo, dira Pablo. Eso es una variable: el mismo codigo produce resultados distintos segun el dato que reciba.
1.6 Comentar el codigo
Un comentario es texto que el navegador ignora. Sirve para dos cosas muy distintas: explicar que hace una parte del codigo, y desactivar temporalmente lineas para que no se ejecuten.
💡 Por que comentar
Mucha gente dice que «el buen codigo se explica solo». Pero recordar exactamente que hacia una linea dentro de seis meses es como recordar en que pagina y parrafo estaba una frase de un libro: puede que esta semana si, dentro de un ano no. Los comentarios son para tu yo futuro, y para quien herede tu proyecto.
Las dos sintaxis
// Esto es un comentario de UNA linea. Todo lo que va detras de // se ignora.
// Pregunta al usuario su nombre
console.log('Esta linea si se ejecuta');
/*
Esto es un comentario de MULTIPLES lineas.
Empieza con barra-asterisco y termina con asterisco-barra.
console.log('Esta linea NO se ejecuta');
*/
console.log('Y esta tambien se ejecuta');
Pulsa Ejecutar en el bloque anterior: veras que solo aparecen los dos mensajes que estan fuera de los comentarios.
Comentar para documentar
// Pregunta al usuario su nombre
const nombre = prompt('¿Cual es tu nombre?');
// Toma el nombre y lo muestra en pantalla
document.querySelector('.contenido').innerHTML = `${nombre} esta aprendiendo JavaScript`;
⚠ Sin pasarse
No comentes linea por linea: satura y distrae. La recomendacion del curso es explicar que hace una funcion completa justo encima de ella, y dejar el resto del codigo hablar. Tampoco hacen falta marcos decorativos de asteriscos alrededor de cada comentario.
1.7 La consola de JavaScript
La consola es el panel donde el navegador muestra los mensajes de tu codigo y sus errores. Trabajaras en ella durante casi toda la primera mitad del curso, asi que conviene saber abrirla.
Boton derecho sobre la pagina → Inspeccionar, y luego la pestana Console. Tambien desde el menu Ver → Opciones de desarrollador → Consola de JavaScript, donde ademas aparece el atajo de teclado.
Boton derecho → Inspeccionar elemento y abre la pestana Consola. La edicion Firefox Developer Edition muestra mas informacion sobre cada elemento; la usaremos en la Unidad 13.
Safari no trae la opcion visible. Hay que habilitarla: Safari → Preferencias → Avanzado y marcar Mostrar el menu Desarrollo en la barra de menus. Despues aparece Desarrollo → Mostrar consola de JavaScript.
Los metodos de console que usaras
// El mas usado con diferencia: escribir un valor
console.log('Hola desde la consola');
// Tambien funciona con arreglos y objetos
console.log([1, 2, 3, 4]);
// .table muestra los datos como una tabla: ideal con muchos registros
console.table([1, 2, 3, 4]);
// Mensajes de error: aparecen destacados en rojo
console.error('Algo salio mal');
// Advertencias: menos graves que un error
console.warn('Esto no esta permitido');
+ Ampliacion pedagogica
Existen dos metodos mas mencionados en el material: console.clear(), que limpia la
consola, y la pareja console.time('nombre') / console.timeEnd('nombre'),
que mide cuanto tarda en ejecutarse el codigo que hay entre ambas. Sirve para comparar dos
soluciones distintas y ver cual es mas rapida. Ambos nombres deben coincidir exactamente.
console.time('prueba');
console.warn('Eso no esta permitido');
console.warn('Eso no esta permitido');
console.warn('Eso no esta permitido');
console.timeEnd('prueba'); // prueba: 0.42ms
✓ La consola tambien escribe
No solo lee: puedes teclear codigo directamente en ella y pulsar Enter. Crear variables, objetos, arreglos... todo se ejecuta al instante. Es tu laboratorio de pruebas y no necesita instalar ningun compilador, a diferencia de lenguajes como C o Java.
1.8 Buenas practicas: el punto y coma y el orden
Hay programadores obsesionados con el formato que no avanzan en el lenguaje, y otros que dominan el lenguaje pero escriben codigo ilegible. El equilibrio esta en adoptar pronto unos pocos habitos y olvidarse del tema.
¿Es obligatorio el punto y coma?
No. A diferencia de otros lenguajes, JavaScript deduce donde termina una instruccion. Este codigo funciona:
console.log('Hola')
console.log('Mundo')
Pero si pones dos instrucciones en la misma linea, el punto y coma si es obligatorio:
console.log('Hola') console.log('Mundo')
console.log('Hola'); console.log('Mundo');
💡 Las dos recomendaciones del curso
- Una instruccion por linea. Aunque quepan varias, el codigo se vuelve ilegible enseguida.
- Pon el punto y coma igualmente. Aqui es opcional, pero en otros lenguajes no lo es; te ahorra el mal habito cuando cambies de lenguaje.
Indentacion dentro de bloques
Cuando un bloque de codigo esta dentro de llaves, su contenido se indenta. No es obligatorio, pero deja claro a simple vista que pertenece a que.
function saludar() {
console.log('Hola');
console.log('Que tal');
}
function saludar() {
console.log('Hola');
console.log('Que tal');
}
Sobre el eterno debate de tabuladores frente a espacios: elige uno, se consistente y sigue adelante. Como dice el material, es mas probable que te contraten por saber escribir codigo que por ganar ese debate.
1.9 ESLint: una herramienta que revisa tu codigo
⚠ Leccion informativa
El propio curso aclara que esta parte es para ver, no necesariamente para practicar si estas empezando. Se incluye porque muestra el tipo de herramientas que existen en el ecosistema de JavaScript. Puedes leerla y volver mas adelante.
Un linter es un programa que revisa tu codigo y avisa cuando no cumple unas reglas de estilo.
ESLint es el mas usado en JavaScript. Se instala con npm, el gestor de paquetes de Node.js:
npm install -g eslint
Despues creas un archivo de configuracion en la raiz del proyecto que define que reglas quieres que se revisen:
{
"parserOptions": {
"ecmaVersion": 6
},
"rules": {
"semi": ["error", "always"]
}
}
Que dice esta configuracion
ecmaVersion: 6— interpreta el codigo como ECMAScript 6, la version que introdujo la sintaxis moderna."semi": ["error", "always"]— la reglasemirevisa los punto y coma;"always"exige que siempre esten y"error"marca su ausencia como error, no como simple aviso.
eslint js/app.js # informa: falta punto y coma en las lineas 1, 2, 6, 7 y 8
eslint js/app.js --fix # reescribe el archivo anadiendo los punto y coma
La opcion --fix es la razon de ser de estas herramientas: corregir 5.000 lineas a mano no
es viable. Muchas empresas definen su propia guia de estilo (o adoptan una publica) y la aplican asi
a todo el equipo.
1.10 Ejercicios practicos
Tu primer proyecto enlazado
Crea desde cero un index.html y una carpeta js con un archivo app.js.
Enlazalos correctamente y haz que al abrir la pagina aparezca un alert con tu nombre.
Comprueba que el HTML se ve antes de que salte el aviso.
Ver solucion
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicio 1</title>
</head>
<body>
<h1>Hola</h1>
<script src="js/app.js"></script>
</body>
</html>
alert('Hola, soy Ana');
Por que el HTML se ve primero: porque el <script> esta al final
del body. Si lo pones en el <head>, el aviso sale antes de que se
dibuje el <h1>.
Practicar la consola
Escribe en app.js cinco mensajes: uno con log, uno con warn,
uno con error, uno con un arreglo y otro con table sobre ese mismo arreglo.
Abre la consola y observa que cada tipo se ve diferente.
Ver solucion
console.log('Mensaje normal');
console.warn('Cuidado con esto');
console.error('Esto fallo');
console.log(['lunes', 'martes', 'miercoles']);
console.table(['lunes', 'martes', 'miercoles']);
Aqui la consola simulada muestra todos en texto; en tu navegador veras
warn en amarillo, error en rojo y table como una tabla real.
Desactivar codigo sin borrarlo
Tienes este archivo y quieres que solo se ejecute la ultima linea, pero sin borrar las anteriores (porque las necesitaras luego). Usa las dos sintaxis de comentario: la de una linea para la primera instruccion y la de bloque para las tres del medio.
console.log('Uno');
console.log('Dos');
console.log('Tres');
console.log('Cuatro');
console.log('Cinco');
Ver solucion
// console.log('Uno');
/*
console.log('Dos');
console.log('Tres');
console.log('Cuatro');
*/
console.log('Cinco');
Esta es exactamente la tecnica que usa el curso original: cada leccion comenta el archivo anterior para que sus variables no choquen con las nuevas.
1.11 Resumen de lo aprendido
- JavaScript no se compila: el navegador lo interpreta directamente. No necesitas instalar nada para empezar.
- Dos formas de incluirlo: con
<script>dentro del HTML, o en un archivo externo enlazado con<script src="js/app.js"></script>. La segunda evita duplicar codigo. - Colocacion: justo antes de cerrar
</body>, para que la pagina se vea antes de cargar lo pesado. - Rutas relativas siempre, para que el proyecto sea portable a un servidor.
- Comentarios:
//para una linea,/* */para varias. Sirven para documentar y para desactivar codigo. - La consola es tu herramienta principal:
log,table,error,warn,clear,time/timeEnd. Ademas acepta codigo escrito directamente. - Estilo: una instruccion por linea, punto y coma aunque sea opcional, e indentar el contenido de las llaves.
- ESLint automatiza la revision de estilo y puede corregir el archivo con
--fix.
1.12 Verificacion de cierre
Marca lo que ya sabes hacer sin consultar nada:
¿Por que se recomienda colocar la etiqueta <script> justo antes de cerrar el </body>?
- Porque en otra posicion el codigo JavaScript no se ejecuta
- Porque solo ahi el navegador reconoce la etiqueta
<script> - Por rendimiento: el contenido se muestra antes de descargar lo mas pesado
- Porque el atributo
srcsolo funciona dentro delbody
¿Cual de estos metodos muestra los datos en forma de tabla en la consola?
console.grid()console.table()console.list()console.rows()
🏁 Unidad completada
Se guarda en este navegador y se refleja en el indice del curso.