Saltar al contenido principal
01Introducción

Operador typeof

Clase 9 de 102 min de lectura

¿42 es un número o una cadena de texto? Viéndolo escrito está claro, pero cuando el valor está guardado en una variable ya no es tan evidente. El operador typeof te saca de dudas: le das un valor y te dice de qué tipo es.

La respuesta llega siempre en forma de cadena de texto. Aquí se lo preguntamos a una constante:

const MAGIC_NUMBER = 7typeof MAGIC_NUMBER // -> 'number'

También puedes usarlo directamente con los valores que quieras comprobar. Pruébalo en la consola:

Consola
Escribes:typeof undefined
Devuelve:'undefined'
Escribes:typeof true
Devuelve:'boolean'
Escribes:typeof 42
Devuelve:'number'
Escribes:typeof 'Hola mundo'
Devuelve:'string'
Ejercicios de código interactivos
Tengo una variable llamada userName. Escribe el código necesario para ver su tipo.

La excepción: null

Hasta aquí, todo en orden: cada tipo responde con su nombre. Pero hay un valor especial en JavaScript, null, con el que typeof contesta algo que no te esperas:

typeof null // -> 'object'

Por eso, si quieres comprobar si una variable es null, no te fíes de typeof. Usa la comparación estricta ===:

const foo = nullfoo === null // -> true

¿Y qué es ese object? Un tipo de dato que está en el centro de JavaScript y que veremos en detalle más adelante.

Infografía
La máquina typeof
6.Por eso, para saber si algo es null, compáralo con la igualdad estricta: foo === null.
Paso 6 de 6

Usando con operadores de comparación#

Saber el tipo de un valor está bien, pero typeof se vuelve útil de verdad junto a los operadores de comparación. Por ejemplo, para comprobar si una variable es del tipo que esperas:

const age = 42typeof age === 'number' // -> true

Y como el resultado es un booleano, puedes encadenarlo con operadores lógicos para comprobar varias condiciones a la vez. Aquí, que age sea un número y que sea mayor que 18:

const age = 42typeof age === 'number' && age > 18 // -> true
Ejercicios de código interactivos
Tengo una variable llamada dogId pero no tengo claro si es una cadena de texto. Escribe el código necesario para asegurarte.

En resumen

  • typeof devuelve una cadena de texto con el tipo del valor: 'number', 'string', 'boolean', 'undefined'…
  • Funciona tanto con variables como con valores escritos directamente.
  • typeof null devuelve 'object' por un error histórico: para detectar null, usa === null.
  • Combinado con === y && sirve para comprobar que un valor es del tipo que esperas.