Operador typeof

El operador typeof permite determinar el tipo de parámetro (número, cadena, objeto). El operador devuelve una cadena, que contiene el tipo ('number', 'string', 'object').

Para null el operador devuelve 'object' (este es un error reconocido del lenguaje). Para funciones el operador devuelve 'function'. Esto se hizo por conveniencia, ya que el tipo 'function' no existe.

Sintaxis

El operador typeof tiene 2 sintaxis (ambas sintaxis funcionan igual):

javascripttypeof parámetro;
typeof(parámetro);

Ejemplo

Veamos cómo typeof funciona con un número:

javascripttypeof 1;

Como resultado del código ejecutado obtendremos el valor number:

javascript'number'

Ejemplo

Ahora pongamos una cadena en el parámetro:

javascripttypeof 'str';

Resultado de la ejecución del código:

javascript'string'

Ejemplo

Ahora especifiquemos en el parámetro el valor booleano true:

javascripttypeof true;

Resultado de la ejecución del código:

javascript'boolean'

Ejemplo

Veamos qué tipo tiene el valor undefined:

javascripttypeof undefined;

Después de ejecutar el código también obtendremos undefined:

javascript'undefined'

Ejemplo

Ahora averigüemos el tipo de un objeto vacío:

javascripttypeof {};

Resultado de la ejecución del código:

javascript'object'

Ejemplo

Y ahora averigüemos el tipo de un array vacío:

javascripttypeof [];

Como resultado también obtendremos 'object':

javascript'object'

Ejemplo

Averigüemos el tipo del valor null:

javascripttypeof null;

Como resultado también obtendremos 'object', lo cual es un error reconocido del lenguaje:

javascript'object'

Ejemplo

Ahora determinemos el tipo de una función vacía:

javascripttypeof function() {};

Después de ejecutar el código obtendremos 'function', a pesar de que tal tipo no existe. Esta cadena es necesaria para la conveniencia del usuario al determinar una función:

javascript'function'

Ejemplo

Escribamos una función que solo muestre números:

javascriptfunction printNumber(number) {
  if (typeof number === 'number') {
    console.log(number);
  }
}

printNumber(2);
printNumber('str');
printNumber(3);

Véase también

  • la función isNaN,
    que realiza la comprobación de NaN
  • la función isFinite,
    que comprueba si un número es finito