Wie überprüft man in JavaScript, ob eine Variable ein Objekt ist?
Hallo zusammen! Ich bin neu in JavaScript und habe ein Problem bei der Überprüfung von Datentypen. Ich muss eine Funktion schreiben, die ein Argument nimmt und prüft, ob es ein Objekt ist (kein Array, kein null, kein primitiver Typ).
Ich habe `typeof` ausprobiert, aber es gibt `"object"` für Arrays und `null` zurück, was für mich nicht geeignet ist. Hier ein Beispiel:
```javascript
function isObject(value) {
return typeof value === 'object';
}
console.log(isObject({})); // true — richtig
console.log(isObject([])); // true — sollte aber false sein, das ist ein Array
console.log(isObject(null)); // true — sollte aber false sein, null ist kein Objekt
console.log(isObject(function(){})); // false — das ist eine Funktion, sie sollte auch nicht als Objekt zählen
```
Ich habe versucht, eine Prüfung mit `Array.isArray()` hinzuzufügen, aber das löst das Problem mit `null` nicht. Ich habe auch über `instanceof Object` gelesen, aber es funktioniert ebenfalls nicht mit `null` und kann falsch-positive Ergebnisse für Objekte aus anderen Frames (z.B. iframe) liefern.
Könnt ihr mir sagen, wie man das richtig und zuverlässig macht?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen