Maison interface Web js tutoriel Donnez un exemple pour expliquer comment déterminer le type d'objet dans les connaissances JavaScript_Basic

Donnez un exemple pour expliquer comment déterminer le type d'objet dans les connaissances JavaScript_Basic

May 16, 2016 pm 03:04 PM
javascript js 对象 对象类型

Dans le processus d'écriture de programmes js, vous devrez souvent déterminer le type d'un objet. Par exemple, si vous écrivez une fonction, vous devez déterminer différents types de paramètres pour écrire différents codes.
Tout d'abord, vous pouvez penser au type d'opérateur. Regardez l'exemple suivant :

 <script type="text/javascript"> var object = {}; var b = true; alert(typeof object + " " + typeof b); </script>
Copier après la connexion

Le résultat obtenu est le suivant :

2016422170645689.png (377×220)

Comme vous pouvez le voir dans les résultats ci-dessus, l'opérateur typeof peut être utilisé pour afficher le type de l'objet. Alors, quels sont les résultats de null et undefined dans la portée de l'opérateur typeof. ?

 /*var object = {}; var b = true; alert(typeof object + " " + typeof b);*/ alert(typeof null + " " + typeof undefined)
Copier après la connexion

2016422170716617.png (239×143)

L'opérateur typeof agit sur null et affiche en fait "objet" (cela ne semble pas scientifique, je pensais qu'il afficherait "null'" ), agissant sur undéfini affiche "undéfini" (cela est conforme au résultat souhaité), donc lorsque vous utilisez l'opérateur typeof pour déterminer le type d'un objet, soyez particulièrement prudent car l'objet peut être nul. Ce qui précède ne donne qu'une partie des résultats de typeof opérant sur ces objets. Le tableau suivant répertorie les résultats de l'opérateur typeof opérant sur Boolean, Number, String, Array, Date, RegExp, Object, Function, null, undefined (lecteurs intéressés, vous pouvez le tester vous-même) :

2016422170736411.png (504×291)

D'après les résultats du tableau ci-dessus, nous pouvons voir que Array, Date et RegExp affichent tous des objets. Pourquoi ne le sont-ils pas. afficher directement le type d'objet ? Cela mènera à un autre opérateur de js : opérateur instanceof. Cet opérateur est utilisé pour déterminer si un objet est un certain type d'objet. La valeur calculée est vraie ou fausse. Jetons un coup d'oeil d'abord :

 var now = new Date(); var pattern = /^[\s\S]*$/; var names = [&#39;zq&#39;, &#39;john&#39;]; alert((now instanceof Date) + " " + (pattern instanceof RegExp) + " " + (names instanceof Array));
Copier après la connexion

2016422170805336.png (385×281)

Évidemment, le type de l'objet peut être déterminé via cette instance de, mais cela ne peut déterminer autre chose que le type de base. Pour les autres types (y compris le type String), il ne peut pas déterminer le type de base. Cependant, instanceof ne peut pas toujours être jugé normalement. Considérons la situation d'un frame. Pour déterminer si l'objet de son type est un objet passé par un autre frame, regardez d'abord l'exemple suivant.
main.html

 <!doctype html> <html lang="en"> <head> <title>Main</title> </head> <frameset cols="45%,*">  <frame name="frame1" src="frame1.html"/>  <frame name="frame2" src="frame2.html"/> </frameset> </html>
Copier après la connexion

frame1.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame1</title> </head> <script type="text/javascript"> var names = [&#39;riccio zhang&#39;, &#39;zq&#39;, &#39;john&#39;]; </script> <body style="background: #ccc"> </body> </html>
Copier après la connexion

frame2.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame2</title> <script type="text/javascript"> document.write("top.frame1.names instanceof Array:"  + (top.frame1.names instanceof Array)); document.write("<br/>"); document.write("top.frame1.names instanceof top.frame1.Array:"  + (top.frame1.names instanceof top.frame1.Array)); document.write("<br/>"); document.write("top.frame1.Array === top.frame2.Array?" + (top.frame1.Array === top.frame2.Array)); </script> </head> <body style="background: #747474"> </body> </html>
Copier après la connexion

2016422170849229.png (1365×215)

L'objet noms est dans le cadre frame1 À ce stade, il est créé via le tableau du cadre frame1 si l'objet noms est placé dans le tableau. frame2 à titre de comparaison, de toute évidence, les noms ne sont pas une instance de Array dans frame2. On pense que frame1 et frame2 ne sont pas du tout le même tableau. D'après le deuxième résultat réel, il est clair que les noms sont une instance du frame dans. dans lequel il se trouve. À partir de la troisième sortie, on peut voir que le tableau de frame1 et le tableau de frame2 sont différents. Alors, que devrions-nous faire lorsque nous rencontrons la comparaison multi-images ci-dessus ? Nous ne pouvons pas comparer le tableau correspondant au cadre à chaque fois. Il existe un moyen nécessaire pour résoudre le problème ci-dessus. Regardez le code suivant :

 var toString = {}.toString; var now = new Date(); alert(toString.call(now))
Copier après la connexion

2016422170910729.png (345×186) <. 🎜>

{}.toString signifie obtenir la méthode toString sur l'objet Object (cette méthode est l'une des méthodes de base de l'objet Object), et toString.call(now) signifie appeler la méthode toString. L'appel de la méthode toString() la plus native de l'objet Date (cette méthode est la méthode sur Object) peut afficher une chaîne de type [object Date]. S'il s'agit d'un Array, les mots [object Array] seront générés, ce qui signifie. que ce qui précède L'opération affichera des mots similaires à [classe d'objet], pouvons-nous donc connaître son type simplement en jugeant la chaîne ? À partir de là, la classe d'outils suivante peut être écrite :

tools.js

 var tools = (function(undefined){ var class2type = {},  toString = {}.toString;   var fun = {  type: function (obj){   return obj === null || obj === undefined ?      String(obj) : class2type[toString.call(obj)]  },  isArray: function (obj){   return fun.type(obj) === "array";  },  isFunction: function (obj){   return fun.type(obj) === "function";  },  each: function (arr, callback){   var i = 0,    hasLength = arr.length ? true : false;   if(!callback || (typeof callback !== &#39;function&#39;) || !hasLength){    return;   }   for(i = 0; i< arr.length; i++){    if(callback.call(arr[i], i, arr[i]) === false){      break;    }   }  } }; fun.each("Boolean Number String Array Date RegExp Object Function".split(" "), function(i, name){  class2type["[object "+ name +"]"] = name.toLowerCase(); }); return fun; })();
Copier après la connexion
tools fournit des méthodes telles que type, isArray, isFunction pour déterminer le type de l'objet. Selon le cas réel, vous pouvez ajouter votre propre méthode pour déterminer le type. type accepte un paramètre obj, qui renvoie le type réel de l'objet en minuscules. Par exemple, si vous devez déterminer le type de l'objet est Array, alors cette méthode renverra un tableau.

Réécrivez-le en fonction de la classe d'outils. fourni ci-dessus L'exemple ci-dessus :
fram2.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame2</title> <script type="text/javascript" src="tools.js"></script> <script type="text/javascript"> document.write("top.frame1.names instanceof Array:"  + (top.frame1.names instanceof Array)); document.write("<br/>"); document.write("top.frame1.names instanceof top.frame1.Array:"  + (top.frame1.names instanceof top.frame1.Array)); document.write("<br/>"); document.write("top.frame1.Array === top.frame2.Array?" + (top.frame1.Array === top.frame2.Array)); document.write("<br/>"); document.write("tools.isArray(top.frame1.names)?" + tools.isArray(top.frame1.names)); </script> </head> <body style="background: #747474"> </body> </html>
Copier après la connexion

2016422171011812.png (1363×189)

À ce stade, le type d'objet peut être facilement déterminé grâce au au-dessus de la classe.

Remarque : des éléments tels que l'alerte ne peuvent pas être jugés dans IE.

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
4 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1677
14
Tutoriel PHP
1280
29
Tutoriel C#
1257
24
Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Dec 18, 2023 pm 03:39 PM

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Comment convertir le tableau de résultats d'une requête MySQL en objet ? Comment convertir le tableau de résultats d'une requête MySQL en objet ? Apr 29, 2024 pm 01:09 PM

Voici comment convertir un tableau de résultats de requête MySQL en objet : Créez un tableau d'objets vide. Parcourez le tableau résultant et créez un nouvel objet pour chaque ligne. Utilisez une boucle foreach pour attribuer les paires clé-valeur de chaque ligne aux propriétés correspondantes du nouvel objet. Ajoute un nouvel objet au tableau d'objets. Fermez la connexion à la base de données.

La relation entre js et vue La relation entre js et vue Mar 11, 2024 pm 05:21 PM

La relation entre js et vue : 1. JS comme pierre angulaire du développement Web ; 2. L'essor de Vue.js en tant que framework front-end ; 3. La relation complémentaire entre JS et Vue ; Vue.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Comment les fonctions PHP renvoient-elles des objets ? Comment les fonctions PHP renvoient-elles des objets ? Apr 10, 2024 pm 03:18 PM

Les fonctions PHP peuvent encapsuler des données dans une structure personnalisée en renvoyant un objet à l'aide d'une instruction return suivie d'une instance d'objet. Syntaxe : functionget_object():object{}. Cela permet de créer des objets avec des propriétés et des méthodes personnalisées et de traiter les données sous forme d'objets.

À quoi dois-je faire attention lorsqu'une fonction C++ renvoie un objet ? À quoi dois-je faire attention lorsqu'une fonction C++ renvoie un objet ? Apr 19, 2024 pm 12:15 PM

En C++, il y a trois points à noter lorsqu'une fonction renvoie un objet : Le cycle de vie de l'objet est géré par l'appelant pour éviter les fuites mémoire. Évitez les pointeurs suspendus et assurez-vous que l'objet reste valide après le retour de la fonction en allouant dynamiquement de la mémoire ou en renvoyant l'objet lui-même. Le compilateur peut optimiser la génération de copie de l'objet renvoyé pour améliorer les performances, mais si l'objet est transmis par sémantique de valeur, aucune génération de copie n'est requise.

See all articles