Volver a JavaScript Básico
Variables y Tipos de Datos
JavaScript tiene tres formas de declarar variables: var, let y const.
var, let, const
// var — alcance de función, evitar en JS moderno
var legado = "forma antigua";
// let — alcance de bloque, reasignable
let puntuacion = 0;
puntuacion = 100;
// const — alcance de bloque, no reasignable
const PI = 3.14159;
const usuario = { nombre: "Alice" };
usuario.nombre = "Bob"; // OK — mutar el objeto está permitido
Tipos Primitivos
// string
const saludo = "Hola";
const plantilla = `Puntuación: ${puntuacion}`; // Template literal
// number
const edad = 25;
const precio = 9.99;
const grande = 9_007_199_254_740_991; // Separador numérico
// bigint
const enorme = 9007199254740992n;
// boolean
const activo = true;
// null — ausencia intencional
const datos = null;
// undefined — valor no inicializado
let valor;
console.log(valor); // undefined
// symbol — identificador único
const id = Symbol("id");
Verificación de Tipos
typeof "hola" // "string"
typeof 42 // "number"
typeof true // "boolean"
typeof undefined // "undefined"
typeof null // "object" ← bug famoso
typeof {} // "object"
typeof [] // "object"
typeof function(){} // "function"
// Mejor verificación para arrays
Array.isArray([]) // true
Coerción de Tipos
// Implícita (evitar cuando sea posible)
"5" + 3 // "53" — concatenación de string
"5" - 3 // 2 — resta numérica
!!0 // false
!!"hola" // true
// Explícita (preferida)
Number("42") // 42
String(100) // "100"
Boolean(0) // false
parseInt("3.7") // 3
parseFloat("3.7") // 3.7
Desestructuración
// Desestructuración de array
const [primero, segundo, ...resto] = [1, 2, 3, 4, 5];
// Desestructuración de objeto
const { nombre, edad: edadUsuario = 18 } = { nombre: "Alice", edad: 30 };
console.log(edadUsuario); // 30
Regla de oro: Siempre usa
constpor defecto; cambia aletsolo cuando necesites reasignar esa variable. Nunca usesvar.