Compruebe si un valor es un objeto en JavaScript
-
Utilice la función
instanceof
para comprobar si un valor es un objeto o no en JavaScript -
Utilice la función
typeof()
para comprobar si un valor es un objeto o no en JavaScript - Utilice funciones definidas por el usuario para comprobar si un valor es un objeto o no en JavaScript
-
Utilice el método
getPrototypeOf()
para comprobar si un valor es un objeto o no en JavaScript
En JavaScript, cada valor definido es un objeto o una primitiva. Cualquier valor que no sea un objeto y no tenga ningún método se conoce como primitivo. Todo lo que no es primitivo es un objeto o no.
En este tutorial, comprobaremos si un valor es un objeto o no.
Utilice la función instanceof
para comprobar si un valor es un objeto o no en JavaScript
Comprobaremos el valor con la ayuda del método instanceof
, que devuelve el tipo de objeto en tiempo de ejecución.
En el siguiente ejemplo, la función devolverá true
si el valor es de un tipo de objeto.
const test = {};
function isObject(val) {
return val instanceof Object;
}
console.log(isObject(test));
Producción :
true
Pero este método no funcionará en todos los casos. El isObject(Object.prototype)
y el isObject(Object.create(null))
devolverán False.
Utilice la función typeof()
para comprobar si un valor es un objeto o no en JavaScript
Podemos comprobar el tipo de objetos utilizando la función typeof()
.
Por ejemplo,
const test = {};
function isObject(val) {
return (typeof val === 'object');
}
console.log(isObject(test));
Producción :
true
Este método tampoco funcionará para todos los casos de prueba. Devolverá falsos positivos para los casos de prueba nulos y falsos negativos para las funciones. El isObject(Object)
también devolverá False.
También podemos definir otra función usando esta función que abordará las limitaciones mencionadas anteriormente.
Vea el código a continuación.
const test = {};
function t() {};
function isObject(val) {
if (val === null) {
return false;
}
return ((typeof val === 'function') || (typeof val === 'object'));
}
console.log(isObject(test));
console.log(isObject(t));
Producción :
true
true
La función en el ejemplo anterior devuelve False si el valor es NULL. Si el valor es de tipo función
o tipo objeto
, devuelve verdadero. De lo contrario, devuelve False.
Utilice funciones definidas por el usuario para comprobar si un valor es un objeto o no en JavaScript
Podemos definir más funciones de este tipo para realizar el trabajo en función del constructor y la clase del objeto.
Por ejemplo,
const test = {};
function isObject(obj) {
return obj === Object(obj);
}
function isObject2(obj) {
return obj.constructor.toString().indexOf('Object') > -1;
}
console.log(isObject(test));
console.log(isObject2(test));
Producción :
true
true
En el ejemplo anterior, creamos dos funciones que podrían verificar si el valor dado es un objeto.
Utilice el método getPrototypeOf()
para comprobar si un valor es un objeto o no en JavaScript
El método getPrototypeOf
lanzará una excepción si su argumento no es un objeto. Podemos usarlo para verificar el tipo de clase del valor dado.
Por ejemplo,
const test = {};
const object1 = Object.create(test);
console.log(Object.getPrototypeOf(object1) === test);
Producción :
true