Heim > Web-Frontend > js-Tutorial > Wie ermittelt man den Datentyp eines Objekts in Javascript?

Wie ermittelt man den Datentyp eines Objekts in Javascript?

不言
Freigeben: 2018-10-27 15:23:56
nach vorne
1989 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Frage, wie man den Datentyp eines Objekts in JavaScript bestimmt. , hat einen bestimmten Referenzwert, Freunde in Not können sich darauf beziehen, ich hoffe, es wird Ihnen hilfreich sein.

Zusammenfassung der booleschen Werttypen verschiedener Daten in js: false: empty string; wahr: Bis auf den obigen falschen Fall ist alles andere wahr;

Es gibt sechs Datentypen in JavaScript : string; Array;Objekt;null;undefiniert. Wie erkennt man diese Datentypen? Die Zusammenfassungsmethode lautet wie folgt:

Die erste Methode: typeof

var obj = {'name':'Tom'}
var arr = ['a','b','c']
var str = 'chenxinming'
var bool = true
var num = 1
var n = null
var fn = function(n){
        console.log(n)
    }
	
console.log(typeof obj)    // object
console.log(typeof arr)    // object
console.log(typeof str)    // string
console.log(typeof bool)    // boolean
console.log(typeof num)    // number
console.log(typeof n)    // object
console.log(typeof fn)    // function
Nach dem Login kopieren
Durch den obigen Test wird festgestellt, dass typeof beides zurückgibt Typen beim Erkennen von Arrays und Wörterbüchern Es handelt sich um ein Objekt, und es ist unmöglich zu sagen, ob es sich um ein Array oder ein Objekt handelt. Wenn Sie überprüfen möchten, ob es sich um ein Array oder ein Objekt handelt, verwenden Sie die Methode „instanceof“ und die Konstruktormethode

Zweite Methode: „instanceof“

var obj = {'name':'Tom'}
var arr = ['a','b','c']
var str = 'chenxinming'
var bool = true
var num = 1
var n = null
var fn = function(n){
        console.log(n)
    }
    
console.log(obj instanceof Object)  // true
console.log(arr instanceof Array)    // true
console.log(str instanceof String)    // false
console.log(bool instanceof Boolean)    // false
console.log(num instanceof Number)    // false
console.log(n instanceof Object)    // false
console.log(fn instanceof Function)    // true
Nach dem Login kopieren
Hinweis: „instanceof“ kann nur sein Wird zur Bestimmung von Arrays und Objekten verwendet. Die Funktion kann keine Zeichenfolgen-, Zahlen- und Booleschen Typen beurteilen. Wenn Sie Zeichenfolgen und Boolesche Werte beurteilen müssen, können Sie die Methode tostring() verwenden.

Besonderer Hinweis:

Wenn die Methode „instanceof“ prüft, ob das Array ein Objekt ist, ist das Rückgabeergebnis „True“

var arr = ['a','b','c']

console.log(arr instanceof Object)    // true
Nach dem Login kopieren

Wenn Sie „instanceof“ verwenden, Sie müssen streng beurteilen, ob es sich um ein Array handelt. Der verbesserte Code lautet wie folgt:

var obj = {'name':'Tom'}
var arr = ['a','b','c']
var str = 'chenxinming'

var getDataType = function(data){
        if(data instanceof Array){
            return 'Array'
            }
        else if (data instanceof Object){
            return 'Object' 
            }
        else{
            return 'data is not obejct type'
        }
    }
    
getDataType(obj)    // Object
getDataType(obj)    // Array
getDataType(obj)    // data is not obejct type
Nach dem Login kopieren

Die dritte Methode: Konstruktor

var obj = {'name':'Tom'}
var arr = ['a','b','c']
var str = 'chenxinming'
var bool = true
var num = 1
var n = null
var fn = function(n){
        console.log(n)
    }
    
console.log(obj.constructor == Object)  // true
console.log(arr.constructor == Array)  // true
console.log(str.constructor == String)  // true
console.log(bool.constructor == Boolean)  // true
console.log(num.constructor == Number)  // true
console.log(fn.constructor == Function)  // true
Nach dem Login kopieren

Der Test ergab, dass der Konstruktor unterstützt die Überprüfung von Objekt, Array, String, Boolean, Zahl, Funktion

Die vierte Methode: toString (empfohlen)

var obj = {'name':'Tom'}
var arr = ['a','b','c']
var str = 'chenxinming'
var bool = true
var num = 1
var n = null
var fn = function(n){
        console.log(n)
    }
    
console.log(Object.prototype.toString.call(obj))    // [object Object]
console.log(Object.prototype.toString.call(arr))    // [object Array]
console.log(Object.prototype.toString.call(str))    // [object String]
console.log(Object.prototype.toString.call(bool))    // [object Boolean]
console.log(Object.prototype.toString.call(num))    // [object Number]
console.log(Object.prototype.toString.call(n))    // [object Null]
console.log(Object.prototype.toString.call(fn))    // [object Function]
Nach dem Login kopieren
Aus dem Test ist es am besten, toString zu verwenden , diese Methode verfügt über umfassendere Funktionen.

Das obige ist der detaillierte Inhalt vonWie ermittelt man den Datentyp eines Objekts in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
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