• 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];
            }
            //...
        }

     

  • 相关阅读:
    HashMap 和 Hashtable 的区别
    提高利用运行(安装)内存
    MyEclipse、Hbuilder、Idea快捷键
    本地安装MySQL详细教程
    MyEclipse/Eclipse相关设置
    MyEclipse 10导入JDK1.7或1.8
    Oracle视图(和Mysq一样l)
    Oracle事务
    MySql综合知识汇总
    Mysql存储过程
  • 原文地址:https://www.cnblogs.com/eaysun/p/4385803.html
Copyright © 2020-2023  润新知