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"
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"
"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
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});
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!