Hay valores que representan ideas distintas. No guardan cantidades ni palabras, sino estados y ausencias.
Un booleano solo puede ser una de dos cosas:
Parecen simples, pero son la base de toda decisión en programación. Cada vez que el programa elige un camino, hay un booleano detrás.
Aquí edad >= 18 produce un booleano. No lo escribes tú directamente: lo genera la comparación.
null: ausencia intencionalnull significa "esto está vacío a propósito". Lo usas cuando quieres decir explícitamente que un dato no tiene valor todavía:
Más adelante, quizás ese usuario reciba un valor real. Pero de momento, null dice: "sé que está vacío y es a propósito".
undefined: sin valor asignadoundefined aparece cuando una variable existe pero nadie le ha dado un valor:
La diferencia clave:
null → tú decidiste que está vacíoundefined → JavaScript dice "esto no tiene valor todavía"En la práctica, los dos representan "ausencia", pero por razones distintas.
La programación está llena de preguntas:
Estos valores existen para responder justo a eso. Sin ellos, no podrías representar estados como "todavía no" o "ya no".
Sí, typeof null devuelve "object". Es un error del lenguaje que nunca se corrigió. No te preocupes: simplemente tenlo en cuenta si alguna vez te lo encuentras.
Crea una variable booleana y otra con null o sin valor asignado. Luego muestra ambas en consola y observa qué imprime cada una.
También se programa con ausencias, no solo con cosas visibles...