jsデータタイプを判断する関数の実例の詳細
function judgeType(change) {
if (arguments.length == 0) {
return '0';//
}
if (change === null) {
return 'null'
}
if (change === undefined && arguments.length > 0) {
return 'undefined'
}
if (change instanceof Function) {
return 'function'
}
if (change instanceof Array) {
return 'arry'
}
if (change instanceof Number || typeof change == 'number') {
return 'number'
}
if (change instanceof String || typeof change == 'string') {
return 'string'
}
if (change instanceof Boolean || typeof change == 'boolean') {
return 'boolean'
}
}
ps:以下、jsを見て、各種データの種類を判断します。jsのことを知っています。typeofがあります。 各種データの種類を判断するために使用されます。 xxx ,typeof(xxx)
以下の例:
typeof 2 number
typeof null object
typeof {} object
typeof [] object
typeof (function(){}) function
typeof undefined undefined
typeof '222' string
typeof true boolean
この中にはjsの5種類のデータが含まれています。 number ストリングス bollan undefined objectと関数タイプのfunctionここを見たら、きっと聞きます。私はどうやって対象を区別しますか?配列とnullですか?
次にもう一つの利器を使います。Object.prototype.toString.call
これはオブジェクトの元のプロトタイプ拡張関数で、より正確なデータタイプの区別に用いられます。
これを試してみましょう。
var gettype=Object.prototype.toString
gettype.call('aaaa') [object String]
gettype.call(2222) [object Number]
gettype.call(true) [object Boolean]
gettype.call(undefined) [object Undefined]
gettype.call(null) [object Null]
gettype.call({}) [object Object]
gettype.call([]) [object Array]
gettype.call(function(){}) [object Function]
ここを見て、先ほどの問題を解決しました。constructorでもデータのタイプを判断できます。
例えば:
''.constructor==String
[].constructor==Array
var obj= new Object()
obj.constructor==Object
実はjsの中にはまだいろんなタイプの判断があります。 [object HTMLDivElement]
divオブジェクト , [object HTMLBodyElement] bodyオブジェクト ,[object Document](IE)
または [object HTMLDocument](firefox,google)
…様々なdomノードの判断は、これらのものはプラグインを書く時に使います。パッケージ可能な方法は以下の通りです。 :
var gettype=Object.prototype.toString
var utility={
isObj:function(o){
return gettype.call(o)=="[object Object]";
},
isArray:function(o){
return gettype.call(o)=="[object Array]";
},
isNULL:function(o){
return gettype.call(o)=="[object Null]";
},
isDocument:function(){
return gettype.call(o)=="[object Document]"|| [object HTMLDocument];
}
........
}
この取得方法には簡単な書き方があります。
var Type = (function() {
var type = {};
var typeArr = ['String', 'Object', 'Number', 'Array','Undefined', 'Function', 'Null', 'Symbol'];
for (var i = 0; i < typeArr.length; i++) {
(function(name) {
type['Is' + name] = function(obj) {
return Object.prototype.toString.call(obj) == '[object ' + name + ']';
}
})(typeArr[i]);
}
return type;
})();
呼び出し方法:Type.IsFunction(function() {}) Type.IsObject({})
。。。。Type.Is…
締め括りをつける
以上は小编が绍介したjsデータタイプの関数の実例を详しく解说します。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。