Conocer el tipo de datos con el que estás trabajando es crucial en JavaScript para evitar errores y escribir código robusto. JavaScript ofrece varias herramientas que te permiten identificar si una variable es un número, una cadena, un objeto, entre otros. A continuación, te presentamos los métodos más comunes para determinar el tipo de datos en JavaScript.
typeof
El operador typeof
es el método más común y directo para identificar el tipo de un valor. Retorna una cadena que indica el tipo del operando.
Ejemplo básico:
let numero = 42;
console.log(typeof numero); // "number"
let texto = "Hola";
console.log(typeof texto); // "string"
let esVerdadero = true;
console.log(typeof esVerdadero); // "boolean"
let indefinido;
console.log(typeof indefinido); // "undefined"
typeof
es excelente para identificar tipos primitivos como number
, string
, boolean
, undefined
, y symbol
. Sin embargo, tiene algunas limitaciones con tipos más complejos como null
y objetos.
instanceof
El operador instanceof
se utiliza para determinar si un objeto es una instancia de un constructor específico. Es útil para verificar el tipo de objetos complejos, como arreglos o instancias de clases personalizadas.
Ejemplo:
let arreglo = [1, 2, 3];
console.log(arreglo instanceof Array); // true
console.log(arreglo instanceof Object); // true
let fecha = new Date();
console.log(fecha instanceof Date); // true
instanceof
es particularmente útil cuando necesitas confirmar si un objeto pertenece a una clase específica.
Object.prototype.toString()
Para una identificación más precisa de todos los tipos de datos, incluyendo null
y undefined
, Object.prototype.toString()
es una opción robusta. Este método retorna una cadena que describe el tipo del objeto de manera detallada.
Ejemplo:
let nulo = null;
console.log(Object.prototype.toString.call(nulo)); // "[object Null]"
let arreglo = [1, 2, 3];
console.log(Object.prototype.toString.call(arreglo)); // "[object Array]"
let fecha = new Date();
console.log(Object.prototype.toString.call(fecha)); // "[object Date]"
Este método es muy útil cuando typeof
no proporciona la información suficiente o cuando necesitas diferenciar entre objetos como Array
, Date
, o RegExp
.
1. Verificar si una variable es un número:
let valor = 100;
if (typeof valor === "number") {
console.log("Es un número.");
}
2. Comprobar si un valor es un arreglo:
let lista = [1, 2, 3];
if (Array.isArray(lista)) {
console.log("Es un arreglo.");
}
3. Identificar correctamente null
y undefined
:
let valorNulo = null;
let valorIndefinido;
console.log(Object.prototype.toString.call(valorNulo)); // "[object Null]"
console.log(Object.prototype.toString.call(valorIndefinido)); // "[object Undefined]"
Para obtener más información sobre cómo trabajar con tipos de datos en JavaScript, puedes consultar la documentación oficial de Mozilla.
Este artículo te ofrece una guía completa sobre cómo determinar el tipo de datos en JavaScript, asegurando que tu código sea más seguro y evitando errores comunes relacionados con tipos incorrectos o mal manejados.
Jorge García
Fullstack developer