zoukankan      html  css  js  c++  java
  • javascript 如何判断一个对象的类型

    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
    <script type="text/javascript">
    var class2type = {
        '[object Boolean]' : 'boolean',
        '[object Number]' : 'number',
        '[object String]' : 'string',
        '[object Function]' : 'function',
        '[object Array]' : 'array',
        '[object Date]' : 'date',
        '[object RegExp]' : 'regexp',
        '[object Object]' : 'object',
        '[object Error]' : 'error'
    };
    function type( obj ) {
        if ( obj == null ) {
            return obj + "";
        }
        return typeof obj === "object" || typeof obj === "function" ?
            class2type[ toString.call(obj) ] || "object" :
            typeof obj;
    };
    function Foo() {}
    function Bar() {}
    Bar.prototype = new Foo();
    var foo = new Foo();
    var bar = new Bar();
    console.log(type(''));
    console.log(type(undefined));
    console.log(type(null));
    console.log(type(true));
    console.log(type(false));
    console.log(type(1));
    console.log(type(0));
    console.log(type(new String('foo')));
    console.log(type(new Number(10)));
    console.log(type({}));
    console.log(type(new Date()));
    console.log(type(new Error()));
    console.log(type([1,2,3] ));
    console.log(type(new Array(1, 2, 3)));
    console.log(type(new Function("") ));
    console.log(type(/abc/g));
    console.log(type(new RegExp("meow")));
    console.log(type(new Object()));
    console.log(type(foo));
    console.log(type(bar));
    console.log(type(/abc/g));
    </script> 
    </body>
    </html>
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
    <script type="text/javascript">
    var class2type = {
        '[object Boolean]' : 'boolean',
        '[object Number]' : 'number',
        '[object String]' : 'string',
        '[object Function]' : 'function',
        '[object Array]' : 'array',
        '[object Date]' : 'date',
        '[object RegExp]' : 'regexp',
        '[object Object]' : 'object',
        '[object Error]' : 'error'
    };
    function type( obj ) {
        if ( obj == null ) {
            return obj + "";
        }
        return typeof obj === "object" || typeof obj === "function" ?
            class2type[ toString.call(obj) ] || "object" :
            typeof obj;
    };
    console.log(typeof null);
    console.log(class2type[ toString.call(null) ] );
    console.log(type(null));
    console.log(typeof undefined);
    console.log(class2type[ toString.call(undefined) ] );
    console.log(type(undefined));
    </script> 
    </body>
    </html>
    object type.html:26
    undefined type.html:27
    null type.html:28
    undefined type.html:29
    undefined type.html:30
    undefined 
  • 相关阅读:
    c3p0 空指针异常 com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
    HTML02单词
    HTML01
    java JVM虚拟机
    线程范围内的数据共享
    电话面试
    IDEA快捷键
    Intellij IDEA 生成返回值对象快捷键
    IDEA 快捷将创建main函数
    模块
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4006648.html
Copyright © 2011-2022 走看看