Maison > Article > interface Web > Résumé des méthodes de détection de types de données en JavaScript
Cet article répertorie les méthodes générales de détection de type Js, qui constituent un petit élément de la construction du système de connaissances Js.
Non défini, Null, Booléen, String, Number( Contient NaN)
NaN n'est égal à aucun type de valeur, y compris NaN ; isNaN est utilisé pour déterminer si la valeur est de type NaN
1. isFinite Is (number)
infini ? Sinon, renvoie true S'il s'agit de NaN, ou d'un infini positif ou négatif, ou d'un type non numérique, renvoie false
2. Lorsqu'ils sont utilisés, des espaces ou typeof(param)
numéro
booléen
non défini
fonction
object null renvoie également object
var obtainType = function(o){ var t; if(o === null ) return “null”; else if(o !== o) return “NaN”; else if( (t = typeof o) !== ‘object’) return t; }Vous pouvez identifier la fonction booléenne non définie de numéro de chaîne null et NaN. Seul les objets sont laissés à la fin, comme
identification des tableaux et identification des types personnalisés
3 Pour identifier les types natifs tels que les tableaux, ce qui suit peut être. utilisé
function obtainType(type) { return function (obj) { return Object.prototype.toString.call(obj) === "[object " + type + "]" } } var isObject = isType("Object") var isString = isType("String") var isArray = Array.isArray || isType("Array") var isFunction = isType("Function")4. Jugement de type personnalisé
/** * 返回函数的名字,可能为空串;不是函数,返回null */ Function.prototype.getName = function () { if ("name" in this) return this.name; return this.name = this.toString().match(/function\s*([^(]*)\(/)[1]; };Les objets de type natif et de type personnalisé peuvent être jugés, donc
/** * 返回:null NaN undefined string number boolean * function Array String Object(包括一些自定义类型) 自定义类型 */ var obtainType =function(o){ /** * 获取参数类型 * 对象直接量、Object.create、自定义构造函数的类属性皆为Object; * 识别出原生类型 (内置构造函数和宿主对象) */ function classOf(obj){ return Object.prototype.toString.call(obj).slice(8, -1); } /** * 返回函数的名字,可能为空串;不是函数,返回null */ Function.prototype.getName = function () { if ("name" in this) return this.name; return this.name = this.toString().match(/function\s*([^(]*)\(/)[1]; }; var t, c, n; // 处理null值特殊情形 if (o === null) return "null"; // NaN:和自身值不相等 if (o !== o) return "NaN"; // 识别出原生值类型和函数、undefined if ((t = typeof o) !== "object") return t; // 识别出原生类型 if ((c = classOf(o)) !== "Object") return c; // 返回自定义类型构造函数名字 if (o.constructor && typeof o.constructor === "function" && (n = o.constructor.getName())) return n; return "Object"; };5.
var strObj = new String('abc'); typeof strObj // "object" obtainType(strObj) // "String"3.
if(dom.nodeType){…Dom…}
if(dom.createElement)
jQuery et autres jugements de type$('#aa') instance de jQuery//ne prend pas en charge l'extension de plusieurs fenêtres et
framessous-pages
Méthode d'écriture généralement recommandée
// bad if (name !== '') { // ...stuff... } // good if (name) { // ...stuff... } // bad if (collection.length > 0) { // ...stuff... } // good if (collection.length) { // ...stuff... }
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!