Maison > interface Web > js tutoriel > le corps du texte

typeof et jugement de type en JS (avec code)

php中世界最好的语言
Libérer: 2018-04-16 14:32:44
original
1577 Les gens l'ont consulté

Cette fois, je vais vous présenter le typeof et le jugement de type en JS (avec code). Quelles sont les précautions concernant le typeof et le jugement de type en JS. Voici des cas pratiques. .

type de

ECMAScript a 5 types primitifs, à savoir Undefined, Null, Boolean, Number et Chaîne. Nous savons tous que nous pouvons utiliser typeofoperator pour trouver le type d'une variable, mais faire référence à à une variable de type ne renverra que object, ce qui signifie que typeof ne peut identifier correctement que les variables de valeur de type de base.

var a = "abc";
console.log(typeof a); // "string"
var b = 123;
console.log(typeof b); // "number"
var c = true;
console.log(typeof c); // "boolean"
var d = null;
console.log(typeof d); // "object"
var f = undefined;
console.log(typeof f); // "undefined"
var g;
console.log(typeof g); // "undefined"
console.log(typeof x); // "undefined"
Copier après la connexion

Vous pouvez vous demander pourquoi l'opérateur typeof renvoie « objet » pour les valeurs nulles. Il s'agissait en fait d'un bug dans l'implémentation originale de JavaScript, qui a ensuite été adoptée par ECMAScript. Maintenant, nul est considéré comme un espace réservé pour l'objet, expliquant ainsi la contradiction, mais techniquement, il s'agit toujours d'une valeur primitive.

Le dernier est étrange, le type d'une variable x inexistante renvoie en fait "objet" au lieu de "indéfini".

On arrive au code suivant :

var a = function() { };
console.log(typeof a); // "function"
var b = [1,2,3]; 
console.log(typeof b); // "object"
var c = { };
console.log(typeof c); // "object"
Copier après la connexion

"Object" est renvoyé à la fois pour les tableaux et les objets, donc un besoin courant dans notre développement quotidien est de savoir comment déterminer si une variable est un tableau ou un objet.

Jugement de type

Le jugement de type signifie généralement juger s'il s'agit d'un tableau ou d'un objet vide. C'est la méthode de jugement que j'ai utilisée ou vue chaque jour pour cette exigence

Déterminer s'il s'agit d'un tableau

Il existe un tableau : var a = [1,2,3,4,5];

Méthode 1 :

toString.call(a); // "[object Array]" méthode deux :

une instance de Array ; // vraie méthode trois :

a.constructor == Array; //true La première méthode est plus générale, qui est l'abréviation de Object.prototype.toString.call(a).

Les variables jugées par instanceof et constructeur doivent être déclarées sur la page actuelle. Par exemple, une page (page parent) a un cadre, et le cadre fait référence à une page (page enfant). Un a est déclaré dans la page enfant et attribué. une valeur. Donnez une variable à la page parent, puis jugez la variable, Array. == object.constructor retournera false

var a = [1,2,3,4,5];
console.log(toString.call(a)); // "[object Array]"      
console.log(a instanceof Array); //true
console.log(a.constructor == Array); //true
Copier après la connexion

Déterminer s'il s'agit d'un objet vide

Il y a des variables : var obj = {};

Méthode 1 :

JSON.stringify(obj); // "{}" est converti en objet JSON pour déterminer s'il s'agit d'une accolade vide

Méthode 2 :

if(obj.id){ //Si l'attribut id existe....} Cette méthode est relativement simple, et la plupart des gens peuvent y penser. Le principe est qu'il y a un certain attribut dans le. objet.

Troisième méthode :

function isEmptyObject(e) { 
var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj);
//falseisEmptyObject({ "a":1, "b":2});
Copier après la connexion

Cette méthode est l'implémentation de la méthode isEmptyObject() de jQuery.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :



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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!