Maison > Article > interface Web > Exemple d'analyse de typeof et de jugement de type en JavaScript
typeof
ECMAScript a 5 types primitifs, à savoir Undefined, Null, Boolean, Number et String. Nous savons tous que nous pouvons utiliser typeofoperator pour trouver le type d'une variable, mais pour les variables de type référence, il ne renverra que <code><a href="http://www.php.cn/wiki/60.html" target="_blank">object</a>
object
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. Désormais, null est considéré comme un espace réservé pour l' objet
, expliquant ainsi la contradiction, mais techniquement, c'est toujours une valeur primitive.x
Le dernier est étrange, le type d'une variable inexistante
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"Renvoie "objet" pour les tableaux et les objets, donc un besoin commun dans notre développement quotidien est de savoir comment déterminer si une variable est une tableau ou un objet. Jugement de typeLe jugement de type détermine généralement 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 quotidiennement pour cette exigence Jugez s'il s'agit d'un tableau
var a = [1,2,3,4,5];
Il existe un tableau :
toString.call(a); // "[object Array]"Méthode deux :
a instanceof Array; //trueMéthode trois :
a.constructor == Array; //true
Object.prototype.toString.call(a)
La première méthode est plus générale, qui est l'abréviation de
instanceof
constructor
et doivent être déclarées sur la page actuelle. Par exemple, une page (page parent) a un frameArray == object.constructor
, et le cadre fait référence à une page. (page enfant). Déclarez un a dans la page enfant et attribuez-le à une variable de la page parent. A ce moment, si la variable est jugée, false
retournera
var a = [1,2,3,4,5]; console.log(toString.call(a)); // "[object Array]" console.log(a instanceof Array); //trueconsole.log(a.constructor == Array); //truejugera si c'est le cas. L'objet vide a des variables :
var obj = {};
JSON.stringify(obj); // "{}"détermine s'il s'agit d'une accolade vide en le convertissant en objet JSON Méthode 2 :
if(obj.id){ //如果属性id存在....}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. Méthode 3 :
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.
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!