Heim > Web-Frontend > js-Tutorial > Hauptteil

Zusammenfassung der Methoden zur Bestimmung des Datentyps in JavaScript

高洛峰
Freigeben: 2017-01-14 10:19:19
Original
1049 Leute haben es durchsucht

typeof
Typeof wird häufig verwendet, um festzustellen, ob eine globale Variable vorhanden ist. Wenn Sie folgendes Urteil fällen:

//haorooms是全局变量
if(haorooms!=undefined){
}//js会报错,说"Uncaught ReferenceError: haorooms is not defined"
Nach dem Login kopieren

Die Lösung ist, dass wir wie folgt schreiben:

if(typeof haorooms!=undefined){
}
Nach dem Login kopieren

Nach der Verwendung von typeof werden keine Fehler gemeldet! Dies ist eine der Anwendungen von typeof!

Darüber hinaus kann typeof auch den Datentyp bestimmen! Wie folgt:

var haorooms="string"; console.log(haorooms); //string
var haorooms=1; console.log(haorooms); //number
var haorooms=false; console.log(haorooms); //boolean
var haorooms; console.log(typeof haorooms); //undfined
 
var haorooms= null; console.log(typeof haorooms); //object
var haorooms = document; console.log(typeof haorooms); //object
var haorooms = []; console.log(haorooms); //object
var haorooms = function(){}; console.log(typeof haorooms) //function  除了可以判断数据类型还可以判断function类型
Nach dem Login kopieren

Natürlich geben für typeof zusätzlich zu den ersten vier Typen null, object und array alle Objekttypen

instanceof< zurück 🎜>Damit können Sie feststellen, ob es sich um ein Array handelt.

var haorooms=[];
console.log(haorooms instanceof Array) //返回true
Nach dem Login kopieren

Konstruktor

Konstruktor ist der Konstruktor, der dem zurückgegebenen Objekt entspricht.
Methoden zur Bestimmung verschiedener Datentypen:

console.log([].constructor == Array);
console.log({}.constructor == Object);
console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(true.constructor == Boolean);
 
function employee(name,job,born){
  this.name=name;
  this.job=job;
  this.born=born; }
 
var haorooms=new employee("Bill Gates","Engineer",1985);
console.log(haorooms.constructor); //输出function employee(name, jobtitle, born){this.name = name; this.jobtitle = job; this.born = born;}
Nach dem Login kopieren

Durch die Ausgabe von haorooms.constructor können Sie sehen, dass es sich bei dem Konstruktor um den Konstruktor handelt, der dem zurückgegebenen Objekt entspricht.

Object.prototype.toString

Wir haben bereits erwähnt, dass wir das Konstruktorattribut verwenden können, um den Objekttyp zu bestimmen.

Object.prototype.toString.apply({}) // "[object Object]"
Object.prototype.toString.apply([]) // "[object Array]"
Object.prototype.toString.apply(NaN)// "[object Number]"
Object.prototype.toString.apply(function(){}) // "[object Function]"
Nach dem Login kopieren

Mit dieser Methode können wir den Grundtyp einer Variablen korrekt bestimmen. Wenn es sich jedoch um einen benutzerdefinierten Typ handelt, können wir den tatsächlichen Typ nicht kennen, da das Ergebnis immer noch [Objekt Objekt] ist

Andere

jQuery verfügt auch über eine Typbeurteilungsmethode

$.isWindow(window) // true
Nach dem Login kopieren

Wie es geht

core.js#479
isWindow: function( obj ) {
  return obj != null && obj == obj.window;
}
Nach dem Login kopieren

Öffnen Sie also ein Objekt wie dieses:

var fakeWindow;
fakeWindow = {};
fakeWindow.window = fakeWindow;
$.isWindow(fakeWindow) // true
Nach dem Login kopieren

und Sie werden ihn getäuscht haben.

Zusammenfassung

Es ist wirklich schwierig, den Typ in JavaScript richtig zu beurteilen. Wenn Sie ihn sorgfältig studieren, ist es sehr wichtig, Ihr Urteil entsprechend den verschiedenen Situationen zu gestalten Natürlich gibt es viele Stellen, die in diesem Artikel nicht vorgestellt werden, wie zum Beispiel die isPrototypeOf-Methode, die jedoch auch ständig verbessert wird Bitte beachten Sie, dass es zu viele Methoden gibt, bei denen es sich um doppelseitige Klingen handelt. Denken Sie also daran, diese mit Vorsicht zu verwenden.

Weitere verwandte Artikel, die Methoden zur Bestimmung von Datentypen in JavaScript zusammenfassen, finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!