Maison >interface Web >js tutoriel >Une explication détaillée de la différence entre typeof et instanceof dans JS
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)
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!