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データタイプの関数の実例を详しく解说します。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。