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

Wie ermittelt man den Datentyp eines Objekts in Javascript?

不言
不言nach vorne
2018-10-27 15:23:561968Durchsuche

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

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

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

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen