Vérifier si une valeur est un objet en JavaScript
-
Utilisez la fonction
instanceof
pour vérifier si une valeur est un objet ou non en JavaScript -
Utilisez la fonction
typeof()
pour vérifier si une valeur est un objet ou non en JavaScript - Utilisez des fonctions définies par l’utilisateur pour vérifier si une valeur est un objet ou non en JavaScript
-
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](/img/JavaScript/feature-image---check-value-is-object-in-javascript.webp)
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