Maison  >  Article  >  interface Web  >  Exemple d'analyse de typeof et de jugement de type en JavaScript

Exemple d'analyse de typeof et de jugement de type en JavaScript

黄舟
黄舟original
2017-10-27 09:20:341677parcourir

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

, c'est-à-dire 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. 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.

xLe dernier est étrange, le type d'une variable inexistante

renvoie en fait "objet" au lieu de "indéfini".

Nous arrivons 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"

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 type

Le 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 :

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

Méthode deux :
a instanceof Array; //true

Mé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

. Les variables jugées par

instanceofconstructor 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); //true
jugera si c'est le cas. L'objet vide

a des variables :

var obj = {};

Méthode 1 :

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!

Déclaration:
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