Maison > interface Web > js tutoriel > Comment déterminer le type de données d'un objet en javascript ?

Comment déterminer le type de données d'un objet en javascript ?

不言
Libérer: 2018-10-27 15:23:56
avant
1989 Les gens l'ont consulté

Le contenu de cet article explique comment déterminer le type de données d'un objet en JavaScript ? , a une certaine valeur de référence, les amis dans le besoin peuvent s'y référer, j'espère que cela vous sera utile.

Résumé des types de valeurs booléennes de différentes données en js : false : chaîne vide non définie ; true : à l'exception du cas false ci-dessus, tout le reste est vrai

Il existe six types de données en JavaScript  : string boolean ; Tableau;Objet;null;non défini. Comment détecter ces types de données ? La méthode récapitulative est la suivante :

La première méthode : 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
Copier après la connexion

Grâce au test ci-dessus, on constate que typeof renvoie lors de la détection de tableaux et de dictionnaires. Les types sont tous des objets et il est impossible de distinguer s'il s'agit de tableaux ou d'objets. Si vous souhaitez vérifier s'il s'agit d'un tableau ou d'un objet, utilisez la méthode instanceof et la méthode constructeur

La deuxième méthode : 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
Copier après la connexion

Remarque : instanceof ne peut être utilisé que pour déterminer des tableaux Avec des objets et des fonctions, les types chaîne, nombre et booléen ne peuvent pas être jugés. Si vous avez besoin de juger une chaîne et un booléen, vous pouvez utiliser la méthode tostring().

Remarque spéciale :

Lorsque la méthode instanceof vérifie si le tableau est un objet, le résultat renvoyé est True

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

console.log(arr instanceof Object)    // true
Copier après la connexion

Un jugement strict est requis si instanceof est utilisé Lorsqu'il s'agit d'un tableau ou d'un objet, le code amélioré est le suivant :

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
Copier après la connexion

La troisième méthode : constructeur

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
Copier après la connexion

Le test a révélé que le constructeur prend en charge vérifier Objet, Tableau, Chaîne, Booléen, Nombre, Fonction

La quatrième méthode : toString (recommandé)

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]
Copier après la connexion

Dès le test, il est préférable d'utiliser toString, cette méthode a des fonctions plus complètes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal