Vérifier si une valeur est un objet en JavaScript

Hiten Kanwar 12 octobre 2023
  1. Utilisez la fonction instanceof pour vérifier si une valeur est un objet ou non en JavaScript
  2. Utilisez la fonction typeof() pour vérifier si une valeur est un objet ou non en JavaScript
  3. Utilisez des fonctions définies par l’utilisateur pour vérifier si une valeur est un objet ou non en JavaScript
  4. Utilisez la méthode getPrototypeOf() pour vérifier si une valeur est un objet ou non en JavaScript
Vérifier si une valeur est un objet en JavaScript

En JavaScript, chaque valeur définie est soit un objet, soit une primitive. Toute valeur qui n’est pas un objet et n’a aucune méthode est appelée primitive. Tout ce qui n’est pas primitif est un objet ou non.

Dans ce tutoriel, nous allons vérifier si une valeur est un objet ou non.

Utilisez la fonction instanceof pour vérifier si une valeur est un objet ou non en JavaScript

Nous allons vérifier la valeur à l’aide de la méthode instanceof, qui renvoie le type d’objet à l’exécution.

Dans l’exemple suivant, la fonction retournera true si la valeur est de type objet.

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

Production:

true

Mais cette méthode ne fonctionnera pas dans tous les cas. Le isObject(Object.prototype) et isObject(Object.create(null)) renverront False.

Utilisez la fonction typeof() pour vérifier si une valeur est un objet ou non en JavaScript

On peut vérifier le type des objets à l’aide de la fonction typeof().

Par exemple,

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

Production:

true

Cette méthode ne fonctionnera pas non plus pour tous les cas de test. Il renverra des faux positifs pour les cas de test nuls et des faux négatifs pour les fonctions. Le isObject(Object) renverra également False.

Nous pouvons également définir une autre fonction à l’aide de cette fonction qui répondra aux limitations mentionnées ci-dessus.

Voir le code ci-dessous.

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

Production:

true 
true

La fonction de l’exemple ci-dessus renvoie False si la valeur est NULL. Si la valeur est de type fonction ou de type objet, elle renvoie true. Sinon, il renvoie False.

Utilisez des fonctions définies par l’utilisateur pour vérifier si une valeur est un objet ou non en JavaScript

Nous pouvons définir plus de fonctions de ce type pour faire le travail en fonction du constructeur et de la classe de l’objet.

Par exemple,

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

Production:

true
true

Dans l’exemple ci-dessus, nous avons créé deux fonctions qui pourraient vérifier si la valeur donnée est un objet.

Utilisez la méthode getPrototypeOf() pour vérifier si une valeur est un objet ou non en JavaScript

La méthode getPrototypeOf lèvera une exception si son argument n’est pas un objet. Nous pouvons l’utiliser pour vérifier le type de classe de la valeur donnée.

Par exemple,

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

Production:

true

Article connexe - JavaScript Object