Cuando empiezas a programar en JavaScript, descubres rápido que los datos no son todos iguales: tienen tipos, y ese tipo decide qué puedes hacer con cada uno. Entender los tipos string, number y boolean te permite predecir qué hará tu código antes de ejecutarlo, leer código generado por inteligencia artificial con criterio y escribir prompts mucho más precisos.
¿Por qué 2 + 2 puede dar 22 en lugar de 4?
Abre la consola del navegador y prueba esto: escribe 2 + 2 y obtienes 4. Hasta ahí, todo normal. Ahora escribe "2" + "2" con comillas. La consola te responde 22, no 4.
No es un error. La máquina hizo exactamente lo que le pediste. El problema es que no entendió la operación igual que tú. Para ti, los dos casos son sumas. Para JavaScript, el primero es una suma de números y el segundo es pegar dos textos uno al lado del otro. Las comillas cambian el tipo de dato, y el tipo de dato cambia qué hace cada operación.
¿Por qué JavaScript suma textos en vez de números? Porque cuando un valor está entre comillas, JavaScript lo trata como string (texto). El símbolo + aplicado a textos los concatena, no los suma matemáticamente.
¿Qué es un string y para qué sirve?
Un string es texto. Cualquier cosa que pongas entre comillas es un string, no importa lo que parezca. "Okini" es un string, y "2" también es un string aunque parezca un número, porque está entre comillas.
Los strings sirven para guardar lo que se lee: nombres, descripciones, mensajes. Cuando guardas el nombre de un método de preparación de café, eso es un string. En la consola se ve así:
javascript
const nombreMetodo = "V60";
Si después invocas nombreMetodo, la consola te devuelve "V60" entre comillas, indicándote que lo que guarda es texto.
¿Cómo funciona el tipo number en JavaScript?
Un number es un número sin comillas. Sirve para guardar lo que se cuenta o lo que se opera matemáticamente. Por ejemplo, el precio de un V60 se declara así:
javascript
const precioV60 = 5;
Acá no hay comillas y eso es deliberado. Si escribieras const precioV60 = "5";, JavaScript lo guardaría como texto, y al intentar sumarlo con otro precio te pasaría exactamente lo del experimento del 22.
¿Cuándo uso number y cuándo string para un valor numérico? Usa number cuando vayas a operar matemáticamente con él (sumar, multiplicar, comparar). Usa string cuando solo lo vas a mostrar como texto, como un código postal o un número de teléfono.
¿Qué es un boolean y por qué solo tiene dos valores?
Un boolean (booleano en español) es un valor que solo puede ser una de dos cosas: true o false. Sirve para guardar respuestas a preguntas de sí o no.
¿El método V60 requiere reserva? Sí. Lo declaras así:
javascript
const requiereReserva = true;
const cataLlena = false;
Fíjate que true y false no llevan comillas. Si los pusieras entre comillas, serían strings, dos textos cualquiera. Sin comillas son booleanos, y son los únicos dos valores que existen en este tipo de dato en todo el universo de JavaScript.
Y aquí viene lo interesante: cuando eliges guardar algo como booleano, estás decidiendo que solo haya dos estados posibles. Si guardaras "el cliente aceptó los términos" como string, podrías recibir un caos infinito de respuestas:
"sí" en minúsculas.
"SÍ" en mayúsculas.
"Afirmativo".
"Yes".
Con booleano solo hay true o false, sin ambigüedad. El tipo de dato no es un detalle técnico, es una decisión sobre qué es posible y qué no en tu programa.
¿Cómo afectan los tipos de datos a tus prompts con IA?
El error más común al empezar a programar tiene que ver con tipos. Un dato llega como string cuando debería ser number, intentas sumarlo y obtienes algo absurdo como 2510 en lugar de 35.
Mira este contraste de prompts cuando le pides código a una inteligencia artificial:
- Vago: "Hazme una función que calcule el promedio".
- Preciso: "Hazme una función que reciba una lista de numbers y devuelva un number con el promedio".
El segundo no es más largo por capricho, es más largo porque elimina la ambigüedad. Y al revés, cuando la IA te genera una función, mirar los tipos es la forma más rápida de evaluar si está bien diseñada. Si dice que recibe "una lista" sin especificar de qué, ya hay una decisión cuestionable.
¿Por qué los tipos de JavaScript no aplican en HTML?
Los tres tipos que viste, string, number y boolean, son tipos de JavaScript, no de HTML. Son lenguajes distintos con reglas distintas, aunque vivan en el mismo proyecto.
Cuando en HTML escribes <h1>Okini</h1>, el texto Okini no está guardado en una variable, no está entre comillas en el código, no es un string en el sentido técnico. Es contenido del documento, texto que el navegador renderiza. Cuando muestras el precio 5 dentro de un párrafo, tampoco es un number: es texto que se muestra en pantalla.
HTML describe lo que la página dice. JavaScript es donde guardas los datos con tipos para operar con ellos: sumarlos, compararlos, decidir en función de su valor. Por esta razón, técnicamente, HTML no es un lenguaje de programación, es un lenguaje de marcado. Programar en sentido estricto es lo que haces cuando escribes JavaScript.
Cómo aplicar string, number y boolean en tu proyecto
Más adelante, en tu archivo de Okini, los tipos van a tener un rol claro:
- Los precios van a ser numbers porque los vas a multiplicar por la cantidad de tazas.
- Los nombres de los métodos van a ser strings porque solo te interesa mostrarlos.
- Los métodos que requieren reserva van a ser booleanos porque solo hay dos respuestas posibles.
Cada concepto que aprendes enciende un bombillito sobre el archivo que ya tienes. Lo que antes era opaco, ahora puedes señalarlo con su nombre técnico, anticipar qué va a pasar cuando el código lo toque y pedirle a una IA que lo modifique sabiendo exactamente qué pediste y qué te entregó.
¿Qué tipo de dato usarías tú para guardar el horario de apertura de una cafetería? Cuéntame en los comentarios cómo lo resolverías.