Cómo verificar si una variable es un objeto en JavaScript
¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema al verificar tipos de datos. Necesito escribir una función que tome un argumento y verifique si es un objeto (no array, no null, no primitivo).
Intenté usar `typeof`, pero devuelve `"object"` para arrays y `null`, lo que no me sirve. Aquí hay un ejemplo:
```javascript
function isObject(value) {
return typeof value === 'object';
}
console.log(isObject({})); // true — correcto
console.log(isObject([])); // true — pero debería ser false, es un array
console.log(isObject(null)); // true — pero debería ser false, null no es un objeto
console.log(isObject(function(){})); // false — pero es una función, tampoco debería considerarse objeto
```
Intenté agregar una verificación con `Array.isArray()`, pero esto no resuelve el problema con `null`. También leí sobre `instanceof Object`, pero tampoco funciona con `null` y puede dar falsos positivos para objetos de otros frames (por ejemplo, iframe).
Díganme, ¿cómo puedo hacerlo correctamente?