この記事では、一般的な Js 型検出方法をリストします。これは、Js 知識システムの構築の一部です。
Unknown、Null、Boolean、String、Number (NaN を含む)
NaN は、NaN を含むどのタイプの値とも等しくありません。値が NaN 型かどうかを判定する
1. isFinite(number)
そうでない場合は、NaN であるか、正または負の無限大である場合に true を返します。 typeof
が使用されている場合、spaceまたはtypeof(param)
string
numberboolean
unknown
function
が使用される場合、false
2を返します。 object null は 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; }
は null、NaN 文字列数値、ブール値未定義関数を識別できます。
上記では、配列の識別、カスタム型の識別
3などのオブジェクトのみが残っています。配列やその他のネイティブ型を識別するには、次の
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")
ネイティブ型の判定を使用できます。とカスタムタイプのオブジェクトも判定できるので
/** * 返回函数的名字,可能为空串;不是函数,返回null */ Function.prototype.getName = function () { if ("name" in this) return this.name; return this.name = this.toString().match(/function\s*([^(]*)\(/)[1]; };
5.
/** * 返回: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"; };
III.
その他if(dom.createElement)
2 falseに自動変換
一般的に推奨される書き方
var strObj = new String('abc'); typeof strObj // "object" obtainType(strObj) // "String"
以上がJavaScriptにおけるデータ型検出方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。