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

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

黄舟
Libérer: 2017-10-27 09:20:34
original
1670 Les gens l'ont consulté

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="//m.sbmmt.com/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"
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. 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"
Copier après la connexion

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]"
Copier après la connexion

Méthode deux :
a instanceof Array; //true
Copier après la connexion

Méthode trois :
a.constructor == Array; //true
Copier après la connexion

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
Copier après la connexion
jugera si c'est le cas. L'objet vide

a des variables :

var obj = {};

Méthode 1 :

JSON.stringify(obj); // "{}"
Copier après la connexion
détermine s'il s'agit d'une accolade vide

en le convertissant en objet JSON Méthode 2 :

if(obj.id){ //如果属性id存在....}
Copier après la connexion
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});
Copier après la connexion
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!

É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!