Aprende sobre los tipos de datos en JavaScript y cómo declarar y usar variables con let y const
midudev
Más clases y directos en YouTube
Tipos de datos y variables
En JavaScript, necesitamos almacenar información para trabajar con ella. Para esto usamos variables y entendemos los diferentes tipos de datos que podemos guardar.
Tipos de datos en JavaScript
JavaScript tiene varios tipos de datos primitivos. Veamos los más comunes:
1. Number (Número)
Representa tanto números enteros como decimales:
let edad = 25let precio = 19.99let temperatura = -5let resultado = 10 / 3 // 3.3333...console.log(edad) // 25console.log(precio) // 19.99
2. String (Cadena de texto)
Representa texto. Puede usar comillas simples, dobles o backticks:
let nombre = 'Miguel'let apellido = 'Ángel'let mensaje = `Hola, soy ${nombre}` // Template stringconsole.log(nombre) // Miguelconsole.log(mensaje) // Hola, soy Miguel
3. Boolean (Booleano)
Solo puede ser true (verdadero) o false (falso):
let esMayorDeEdad = truelet tieneLicencia = falselet estaLogueado = trueconsole.log(esMayorDeEdad) // trueconsole.log(tieneLicencia) // false
4. Undefined (Indefinido)
Una variable que ha sido declarada pero no tiene valor:
let usuarioconsole.log(usuario) // undefinedlet direccionconsole.log(direccion) // undefined
5. Null (Nulo)
Representa la ausencia intencional de un valor:
let respuesta = null // Intencionalmente sin valorconsole.log(respuesta) // null
Diferencia entre undefined y null
let sinDefinir // undefined = no se ha asignado valorlet sinValor = null // null = intencionalmente vacíoconsole.log(sinDefinir) // undefinedconsole.log(sinValor) // null
undefined: JavaScript lo asigna automáticamente cuando no hay valornull: Tú lo asignas intencionalmente para indicar “sin valor”
Es raro pero también puedes asignar
undefinedmanualmente, aunque no es recomendable.
6. BigInt (Entero grande)
Para números enteros muy grandes que exceden el límite de Number:
let numeroNormal = 9007199254740991 // Límite máximo segurolet numeroGrande = 9007199254740992n // BigInt (nota la 'n' al final)console.log(numeroNormal) // 9007199254740991console.log(numeroGrande) // 9007199254740992n
¿Por qué es necesario BigInt?
JavaScript tiene un límite para los números que puede representar con precisión. El número máximo seguro es:
console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991
Si intentas usar números más grandes, pierdes precisión:
// Sin BigInt - pierde precisiónlet grande1 = 9007199254740992let grande2 = 9007199254740993console.log(grande1 === grande2) // true (¡ERROR! deberían ser diferentes)// Con BigInt - mantiene precisiónlet grandeBI1 = 9007199254740992nlet grandeBI2 = 9007199254740993nconsole.log(grandeBI1 === grandeBI2) // false (correcto)
¿Cuándo usar BigInt?
- Operaciones con números muy grandes (IDs de base de datos, criptografía)
- Cálculos financieros que requieren alta precisión
- Trabajar con timestamps en nanosegundos
// Ejemplo práctico: ID de Twitterlet tweetId = 1234567890123456789nconsole.log(tweetId) // 1234567890123456789n
Verificar el tipo de dato
Usa typeof para saber el tipo de un valor:
console.log(typeof 42) // "number"console.log(typeof 'Hola') // "string"console.log(typeof true) // "boolean"console.log(typeof undefined) // "undefined"console.log(typeof null) // "object" (esto es un bug histórico)console.log(typeof 123n) // "bigint"
Nota:
typeof nulldevuelve"object"por un error histórico de JavaScript que no se puede corregir por compatibilidad.
Variables: let y const
Para almacenar datos en JavaScript, usamos variables. Hay dos formas principales de declararlas: let y const.
let - Variable que se puede reasignar
let permite declarar una variable cuyo valor puede cambiar:
let edad = 25console.log(edad) // 25// Puedes reasignar el valoredad = 26console.log(edad) // 26edad = 27console.log(edad) // 27
Ejemplo práctico con let
let contador = 0console.log(contador) // 0contador = contador + 1 // Incrementarconsole.log(contador) // 1contador = contador + 1console.log(contador) // 2
const - Variable que NO se puede reasignar
const declara una variable cuyo valor no puede cambiar (es constante):
const PI = 3.14159console.log(PI) // 3.14159// ❌ Esto causará un errorPI = 3.14 // TypeError: Assignment to constant variable
Ejemplo práctico con const
const nombre = 'Miguel'const apellido = 'Ángel'console.log(nombre) // Miguelconsole.log(apellido) // Ángel// ❌ Esto causará un errornombre = 'Juan' // TypeError: Assignment to constant variable
¿Cuándo usar let y cuándo const?
Usa const cuando:
- El valor no va a cambiar
- Es un valor constante (PI, configuración, etc.)
- Quieres evitar reasignaciones accidentales
const MAX_USUARIOS = 100const API_URL = 'https://api.ejemplo.com'const NOMBRE_APP = 'MiApp'
Usa let cuando:
- El valor va a cambiar
- Necesitas reasignar la variable
- Es un contador, acumulador, etc.
let contador = 0let suma = 0let usuarioActual = null
Regla práctica
Usa const por defecto. Solo cambia a let si descubres que necesitas reasignar el valor.
// ✅ Buena práctica: empieza con constconst nombre = 'Miguel'const edad = 25// Si necesitas cambiar el valor, usa letlet contador = 0contador = contador + 1
Nombres de variables
Reglas para nombrar variables
✅ Permitido:
let nombrelet nombreCompletolet edad2let _privadolet $precio
❌ No permitido:
// let 2edad; // No puede empezar con número// let nombre-completo; // No puede tener guiones//let let; // No puede ser palabra reservada//let class; // No puede ser palabra reservada
Convenciones de nombres (camelCase)
En JavaScript, usamos camelCase para nombres de variables:
// ✅ Bien (camelCase)let nombreCompleto = 'Miguel Ángel'let edadUsuario = 25let precioTotal = 99.99// ❌ Evitar (otras convenciones)let nombre_completo = 'Miguel' // snake_caselet NombreCompleto = 'Miguel' // PascalCase
Nombres descriptivos
Usa nombres que describan claramente qué contiene la variable:
// ❌ Mal: nombres poco descriptivoslet x = 'Miguel'let a = 25let temp = 99.99// ✅ Bien: nombres descriptivoslet nombre = 'Miguel'let edad = 25let precioProducto = 99.99
Constantes en mayúsculas
Por convención, las constantes que no cambiarán nunca se escriben en MAYÚSCULAS:
const PI = 3.14159const MAX_INTENTOS = 3const API_URL = 'https://api.ejemplo.com'const DIAS_SEMANA = 7