zoukankan      html  css  js  c++  java
  • JavaScript 学习笔记— —类型判断

    //1 判断是否为数组类型
        var a=[0];
        console.log(isArray(a));
        function isArray(obj){
            return (typeof obj=='object') && obj.constructor==Array;
        }
    
        console.log("2-----------------------------------")
        //2 判断是否为字符串类型
        console.log(isString('test'));
        console.log(isString(10));
        function isString(str){
            return (typeof str=='string')&&str.constructor==String;
        }
    
        console.log("3-----------------------------------")
        //3 判断是否为数值类型
        console.log(isNumber('test'));
        console.log(isNumber(10));
        function isNumber(obj){
            return (typeof obj=='number')&&obj.constructor==Number;
        }
    
        console.log("4-----------------------------------")
        //4 判断是否为日期类型
        console.log(isDate(new Date()));
        console.log(isDate(10));
        function isDate(obj){
            return (typeof obj=='object')&&obj.constructor==Date;
        }
    
        console.log("5-----------------------------------")
        //5 判断是否为函数
        console.log(isFunction(function test(){}));
        console.log(isFunction(10));
        function isFunction(obj){
            return (typeof obj=='function')&&obj.constructor==Function;
        }
    
        console.log("6-----------------------------------")
        //6 判断是否为对象
        console.log(isObject(new Object()));
        console.log(isObject(10));
        function isObject(obj){
            return (typeof obj=='object')&&obj.constructor==Object;
        }
    
        /*
        * null 数组  日期 对象返回的是object类型
        */
    // js数据类型: number   string    boolean   undefined   object和函数类型 function    
    
        console.log(typeof null)//object
        console.log(typeof Function)//function  Function是包装类型
        console.log(typeof undefined)//undefined
    
        var message;
        console.log(message)//undefined 定义了没有赋值
        console.log(typeof message)//undefined 类型
        console.log(null == undefined)//true
    
        /*
        * true==1;fase==0;
        * */
        console.log(true == 1)//true
        console.log(false == 0)//true
        console.log(false ==2)//false
    
        var str="";
        console.log(str==0);//true;空字符串将会把值转换为0
        console.log(typeof str)//string

      var str2=new String('A');
      console.log(str2) //
    String { 0="A"}

    原型扩展方法

    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]
    

     

    /*    其实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];
            }
            //...
        }

     

  • 相关阅读:
    auto_ptr(转载)
    OSG在VS2008下的配置安装
    没有找到MSVCR80.dll (转)
    获取程序数据路径(转)
    vc中error LNK2001:unresolved external symbol _WinMain@16的解决方法(转)
    wxWidgets编程笔记二(samples使用设置)
    关于简繁转换的工作以及校正转换词汇表的设计
    汉文博士简繁汉字转换功能测试版已经上线
    感谢wangyanhan和sanwsw网友为汉文博士制作数据库
    汉文博士新增四角号码检索字典
  • 原文地址:https://www.cnblogs.com/eaysun/p/4385803.html
Copyright © 2011-2022 走看看