Überprüfen Sie, ob ein Wert in JavaScript ein Objekt ist

Hiten Kanwar 12 Oktober 2023
  1. Verwenden Sie die Funktion instanceof, um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht
  2. Verwenden Sie die Funktion typeof(), um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht
  3. Verwenden Sie benutzerdefinierte Funktionen, um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht
  4. Verwenden Sie die Methode getPrototypeOf(), um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht
Überprüfen Sie, ob ein Wert in JavaScript ein Objekt ist

In JavaScript ist jeder definierte Wert entweder ein Objekt oder ein Primitiv. Jeder Wert, der kein Objekt ist und keine Methoden besitzt, wird als Primitiv bezeichnet. Was nicht primitiv ist, ist ein Objekt oder nicht.

In diesem Tutorial prüfen wir, ob ein Wert ein Objekt ist oder nicht.

Verwenden Sie die Funktion instanceof, um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht

Wir überprüfen den Wert mit Hilfe der Methode instanceof, die den Objekttyp zur Laufzeit zurückliefert.

Im folgenden Beispiel gibt die Funktion true zurück, wenn der Wert von einem Objekttyp ist.

const test = {};
function isObject(val) {
  return val instanceof Object;
}
console.log(isObject(test));

Ausgabe:

true

Diese Methode funktioniert jedoch nicht in allen Fällen. isObject(Object.prototype) und isObject(Object.create(null)) geben False zurück.

Verwenden Sie die Funktion typeof(), um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht

Wir können den Typ von Objekten mit der Funktion typeof() überprüfen.

Zum Beispiel,

const test = {};
function isObject(val) {
  return (typeof val === 'object');
}
console.log(isObject(test));

Ausgabe:

true

Diese Methode funktioniert auch nicht für alle Testfälle. Es gibt falsch positive Ergebnisse für die Nulltestfälle und falsch negative Ergebnisse für Funktionen zurück. Das isObject(Object) gibt ebenfalls False zurück.

Wir können mit dieser Funktion auch eine andere Funktion definieren, die die oben genannten Einschränkungen anspricht.

Siehe den Code unten.

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));

Ausgabe:

true 
true

Die Funktion im obigen Beispiel gibt False zurück, wenn der Wert NULL ist. Wenn der Wert vom Typ Funktion oder vom Typ Objekt ist, gibt er true zurück. Andernfalls wird False zurückgegeben.

Verwenden Sie benutzerdefinierte Funktionen, um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht

Wir können mehr solcher Funktionen definieren, um die Arbeit basierend auf dem Konstruktor und der Klasse des Objekts zu erledigen.

Zum Beispiel,

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));

Ausgabe:

true
true

Im obigen Beispiel haben wir zwei Funktionen erstellt, die prüfen könnten, ob der angegebene Wert ein Objekt ist.

Verwenden Sie die Methode getPrototypeOf(), um in JavaScript zu überprüfen, ob ein Wert ein Objekt ist oder nicht

Die Methode getPrototypeOf löst eine Ausnahme aus, wenn ihr Argument kein Objekt ist. Wir können es verwenden, um den Typ der Klasse des angegebenen Werts zu überprüfen.

Zum Beispiel,

const test = {};
const object1 = Object.create(test);
console.log(Object.getPrototypeOf(object1) === test);

Ausgabe:

true

Verwandter Artikel - JavaScript Object