Appearance
typeof
et instanceof
typeof
et instanceof
sont deux opérateurs en JavaScript qui sont utilisés pour vérifier le type d'une variable, mais de manière différente.
typeof
L'opérateur typeof
est un opérateur unaire qui renvoie une chaîne indiquant le type de son opérande. Il est principalement utilisé pour distinguer entre différents types primitifs (comme les chaînes, les nombres, et les booléens), mais a quelques particularités.
javascript
console.log(typeof "Bonjour"); // "string"
console.log(typeof 5); // "number"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (ceci est considéré comme un bug en JavaScript)
console.log(typeof {}); // "object"
console.log(typeof function() {}); // "function"
instanceof
L'opérateur instanceof
est utilisé pour vérifier si un objet est une instance d'une certaine classe ou d'un constructeur spécifique. Il examine la chaîne de prototype de l'objet pour faire cette vérification.
javascript
class Voiture {
// ...
}
let maVoiture = new Voiture();
console.log(maVoiture instanceof Voiture); // true
console.log(maVoiture instanceof Object); // true (tous les objets JavaScript héritent de Object)
console.log(maVoiture instanceof Array); // false
Différences Clés
- Type de Retour :
typeof
renvoie une chaîne indiquant le type de l'opérande, tandis queinstanceof
renvoie un booléen indiquant si l'objet est une instance d'un constructeur spécifique. - Usage :
typeof
est plus utile pour vérifier les types de données primitifs, tandis queinstanceof
est utilisé pour vérifier l'appartenance d'un objet à une classe ou à un type d'objet. - Limitations :
typeof
a des limites, comme ne pas pouvoir distinguer différents types d'objets (par exemple, il considère les tableaux comme des "object").instanceof
ne fonctionne qu'avec les objets et ne peut pas être utilisé pour vérifier les types de données primitifs.