Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung der Methoden zur Bestimmung des Datentyps in JavaScript

Zusammenfassung der Methoden zur Bestimmung des Datentyps in JavaScript

高洛峰
高洛峰Original
2017-01-14 10:19:191020Durchsuche

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"

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

if(typeof haorooms!=undefined){
}

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类型

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

instanceofDamit können Sie feststellen, ob es sich um ein Array handelt.

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

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;}

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]"

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

Wie es geht

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

Öffnen Sie also ein Objekt wie dieses:

var fakeWindow;
fakeWindow = {};
fakeWindow.window = fakeWindow;
$.isWindow(fakeWindow) // true

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!

Stellungnahme:
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