Maison >interface Web >js tutoriel >Une explication détaillée de la différence entre typeof et instanceof dans JS

Une explication détaillée de la différence entre typeof et instanceof dans JS

亚连
亚连original
2018-05-19 15:15:511387parcourir

En JavaScript, typeof et instanceof sont souvent utilisés pour déterminer si une variable est vide ou de quel type il s'agit. Mais il existe encore des différences entre eux. Les amis dans le besoin peuvent se référer à

Typeof et instanceof en JavaScript sont souvent utilisés pour déterminer si une variable est vide ou de quel type il s'agit. Mais il existe encore des différences entre eux :

typeof

typeof est une opération unaire, placée avant un opérande, les opérandes peuvent être de tout type.

Il renvoie une chaîne qui décrit le type de l'opérande. typeof ne peut généralement renvoyer que les résultats suivants :
numéro, booléen, chaîne, fonction, objet, non défini. Nous pouvons utiliser typeof pour savoir si une variable existe, comme if(typeof a!="undefined"){alert("ok")}, au lieu d'utiliser if(a) car si a n'existe pas (non déclaré), elle will Si une erreur se produit, l'utilisation de typeof pour des objets spéciaux tels que Array et Null renverra toujours un objet. C'est la limitation de typeof.

instancede

instance : instance, exemple

une instancede b?alert("true"):alert(" false"); //a est une instance de b? True : False

instanceof est utilisé pour déterminer si une variable est une instance d'un objet, par exemple var a=new Array();alert(a instanceof Array); (une instance d'objet) renverra également vrai ; c'est parce que Array est une sous-classe d'objet. Autre exemple : function test(){};var a=new test();alert(a instanceof test) retournera

En parlant d'instanceof, nous devons insérer une question supplémentaire, qui est la arguments de la fonction. Nous pouvons tous penser que arguments est un objet Array, mais si vous utilisez instanceof pour tester, vous constaterez que les arguments ne sont pas un objet Array, même s'il semble similaire.

Aussi :

Test var a=new Array();if (une instance d'objet) alert('Y');else alert('N');

obtient 'Y'

mais si (instance de fenêtre d'objet) alert('Y');else alert('N');

Get 'N'

Ainsi, l'objet testé par instanceof ici fait référence à l'objet dans la syntaxe js, pas à l'objet modèle dom.

Il y aura quelques différences lors de l'utilisation de typeof

alert(typeof(window)) obtiendra un objet

Ce qui précède est ce que j'ai compilé pour tout le monde , j'espère que cela sera utile à l'avenir. Utile à tout le monde.

Articles associés :

Explication sur l'utilisation des opérateurs js barres simples et verticales "|" et "||"

JS Explication détaillée du plein écran et sortie du plein écran (code inclus)

La différence entre les fonctions ordinaires et les constructeurs en Javascript (explication détaillée combinée avec le code)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn