typeof
Lorsque le typeof est utilisé plus souvent, il s'agit de déterminer si une variable globale est présente, si une page définit une variable globale. Si vous portez le jugement suivant:
// Harooms est une variable globale if (harooms! = Undefined) {} // js rapportera une erreur disant "UNCAPED ReferenceError: Harooms n'est pas défini"La solution consiste à écrire comme suit:
if (typeof haorooms! = non défini) {}Après avoir utilisé le typeof, il n'y aura pas d'erreur! C'est l'un des types d'applications!
De plus, le typeof peut également porter des jugements sur les types de données! comme suit:
var harooms = "string"; Console.log (Harooms); // stringvar harooms = 1; Console.log (Harooms); // NumberVar Harooms = false; Console.log (Harooms); // Booleanvar Harooms; console.log (typeof harooms); // UndFenedVar Harooms = null; console.log (typeof harooms); // objectvar harooms = document; console.log (typeof harooms); // objectvar harooms = []; Console.log (Harooms); // objectvar harooms = function () {}; console.log (typeof harooms) // fonction En plus de juger les types de données, vous pouvez également juger des types de fonctionsDe toute évidence, pour le typeof, à l'exception des quatre premiers types, Null, Object et Array renvoie tous les types d'objets;
instance de
Il peut être utilisé pour déterminer s'il s'agit d'un tableau.
var harooms = []; console.log (HAROOMS instanceof array) // return true
constructeur
Le constructeur est le constructeur qui renvoie le constructeur correspondant de l'objet.
Comment juger divers types de données:
Console.log ([]. Constructor == Array); console.log ({}. Constructor == Object); console.log ("String" .Constructor == String); console.log ((123) .Constructor == numéro); console.log (true.constructor == booléen); fonction Employee (nom, travail, travail, né) {this.name ==); fonction Employee, Nom, Job, Born) {this.Name == BOOLEAN); fonction Employee (Nom, Job, Born) {this.Name == BOOLEAN); fonction Employee, Nom, Job, Born) {This.Name ==; this.job = job; this.born = né; } var haorooms = nouvel employé ("Bill Gates", "ingénieur", 1985); console.log (harooms.constructor); // Fonction de sortie Employee (nom, jobTitle, né) {this.name = name; this.jobtitle = job; this.born = né;}En sortant Haorooms.Contructor, on peut voir que le constructeur renvoie le constructeur correspondant à l'objet.
Object.prototype.tostring
Nous avons mentionné plus tôt que nous pouvons utiliser l'attribut constructeur pour déterminer le type d'objet. Parlons de la méthode object.protype.tostring.
Object.prototype.tostring.apply ({}) // "[objet objet]" objet.prototype.tostring.apply ([]) // "[Array objet]" objet.prototype.tostring.apply (nan) // "[objet numéro]"En utilisant cette méthode, nous pouvons juger correctement le modèle de base d'une variable, mais s'il s'agit d'un type personnalisé, nous ne pouvons pas connaître le type réel, car le résultat sera toujours [objet objet]
autre
jQuery a également une méthode de jugement de type, ce qui suit est un exemple
$ .iswindow (fenêtre) // vrai
Comment faire
core.js # 479iswindow: function (obj) {return obj! = null && obj == obj.window;}Alors ouvrez un objet comme ceci:
var FakeWindow; FakeWindow = {}; FakeWindow.Window = Fakewindow; $. Iswindow (Fakewindow) // VraiVous lui avez menti.
résumé
En JavaScript, vous devez juger correctement les types. Lorsque vous les étudiez attentivement, c'est vraiment gênant. Il est très important de concevoir votre jugement selon différentes situations. Nous devons également réfléchir à la façon de juger le type correct de la manière la plus simple. Bien sûr, il y a encore beaucoup de choses qui n'ont pas été introduites dans cet article. Par exemple, la méthode estprototype Of. JavaScript est une langue avec de nombreux fardeaux historiques, mais il s'améliore également constamment. Lorsque vous l'utilisez, vous devez faire attention à trop de façons de lames double face. N'oubliez pas de les utiliser avec soin.