typeof renvoie un objet
Tous les types de données en JavaScript sont des objets au sens strict, mais dans la réalité, nous avons toujours des types. Si vous souhaitez déterminer si une variable est un tableau ou un objet, vous ne pouvez pas utiliser typeof car tout renvoie un objet.
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
document.write( 'o typeof est ' typeof o);
document.write( '
');
document.write( ' un type de est ' type de a);
Exécution :
o typeof est un objet
un type de est un objet
Par conséquent, nous ne pouvons qu'abandonner cette méthode. Il existe deux façons de déterminer s'il s'agit d'un tableau ou d'un objet
Tout d'abord, utilisez l'attribut typeof plus length
Le tableau a un attribut de longueur, pas l'objet, et le type de tableau et d'objet renvoient tous deux un objet, nous pouvons donc juger de cette façon
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
var getDataType = fonction(o){
Si(typeof o == 'objet'){
Si( typeof o.length == 'number' ){
return 'Array'
}autre{
renvoie 'Objet' ;
>
}autre{
return 'le paramètre n'est pas un type d'objet' ;
>
};
alert( getDataType(o) ); // Objet
alert( getDataType(a) ); // Tableau
alert( getDataType(1) ); // le paramètre n'est pas un type d'objet
alert( getDataType(true) ); // le paramètre n'est pas un type d'objet
alert( getDataType('a') ); // le paramètre n'est pas un type d'objet
Deuxièmement, utilisez instanceof
Utilisez instanceof pour déterminer si une variable est un tableau, tel que :
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
alert( une instance de Array ); // true
alert( ou instanceof Array ); // false
Vous pouvez également déterminer s'il appartient à un objet
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
alert( une instance d'Object ); // true
alert( ou instanceof Object ); // true
Mais les tableaux appartiennent également à des objets, donc les deux éléments ci-dessus sont vrais. Par conséquent, lorsque nous utilisons instanceof pour déterminer si le type de données est un objet ou un tableau, nous devons d'abord déterminer le tableau, et enfin déterminer l'objet
.
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
var getDataType = fonction(o){
Si (o instance de Array) {
renvoie 'Tableau'
}else if( o instanceof Object ){
return 'Objet' ;
}autre{
return 'le paramètre n'est pas un type d'objet' ;
>
};
alert( getDataType(o) ); // Objet
alert( getDataType(a) ); // Tableau
alert( getDataType(1) ); // le paramètre n'est pas un type d'objet
alert( getDataType(true) ); // le paramètre n'est pas un type d'objet
alert( getDataType('a') ); // le paramètre n'est pas un type d'objet
Si vous ne jugez pas Array en premier, par exemple :
var o = { 'nom':'lee' };
var a = ['reg','bleu'];
var getDataType = fonction(o){
Si (o instance d'objet) {
renvoyer 'Objet'
}else if( ou instanceof Array ){
return 'Array' ;
}autre{
return 'le paramètre n'est pas un type d'objet' ;
>
};
alert( getDataType(o) ); // Objet
alert( getDataType(a) ); // Objet
alert( getDataType(1) ); // le paramètre n'est pas un type d'objet
alert( getDataType(true) ); // le paramètre n'est pas un type d'objet
alert( getDataType('a') ); // le paramètre n'est pas un type d'objet
Ensuite, le tableau sera également jugé comme objet.