美文网首页
JS判断数据类型的五种方法

JS判断数据类型的五种方法

作者: 扶得一人醉如苏沐晨 | 来源:发表于2023-10-12 09:00 被阅读0次

    一、typeof

    基本数据类型中:Number,String,Boolean,undefined 以及引用数据类型中Function ,可以使用typeof检测数据类型,分别返回对应的数据类型小写字符。

    基本数据类型中:null 。引用数据类型中的:Array,Object,Date,RegExp。不可以用typeof检测。都会返回小写的object

    console.log(
        typeof 100, //"number"
        typeof 'abc', //"string"
        typeof false, //"boolean"
        typeof undefined, //"undefined"
        typeof null, //"object"
        typeof [1,2,3], //"object"
        typeof {a:1,b:2,c:3}, //"object"
        typeof function(){console.log('aaa');}, //"function"
        typeof new Date(), //"object"
        typeof /^[a-zA-Z]{5,20}$/, //"object"
        typeof new Error() //"object"
        typeof new Number(100), //'object'
        typeof new String('abc'),// 'string'
        typeof new Boolean(true),//'boolean'
    );
    

    二、instanceof

    原理 因为A instanceof B 可以判断A是不是B的实例,返回一个布尔值,由构造类型判断出数据类型

    arr、date、fn分别是数组、日期对象、和函数

    console.log(arr instanceof Array ); // true
    console.log(date instanceof Date ); // true
    console.log(fn instanceof Function ); // true
    //注意: instanceof 后面一定要是对象类型,大小写不能写错,该方法试用一些条件选择或分支
    

    三、通过Object.prototype.toString.call()方法来判断

    Object.prototype.toString.call();
    console.log(toString.call(123)); //[object Number]
    console.log(toString.call('123')); //[object String]
    console.log(toString.call(undefined)); //[object Undefined]
    console.log(toString.call(true)); //[object Boolean]
    console.log(toString.call({})); //[object Object]
    console.log(toString.call([])); //[object Array]
    console.log(toString.call(function(){})); //[object Function]
    

    四、根据对象的contructor判断

    arr、date、fn分别是数组、日期对象、和函数

    console.log('数据类型判断' -  constructor);
    console.log(arr.constructor === Array); //true
    console.log(date.constructor === Date); //true
    console.log(fn.constructor === Function); //true
    

    五、jq中判断数据类型的方法

    jQuery提供了一系列工具方法,用来判断数据类型,以弥补JavaScript原生的typeof运算符的不足。以下方法对参数进行判断,返回一个布尔值。

    • jQuery.isArray();是否为数组
    • jQuery.isEmptyObject();是否为空对象 (不含可枚举属性)。
    • jQuery.isFunction():是否为函数
    • jQuery.isNumberic():是否为数字
    • jQuery.isPlainObject():是否为使用“{}”或“new Object”生成对象,而不是浏览器原生提供的对象。
    • jQuery.isWindow(): 是否为window对象;
    • jQuery.isXMLDoc(): 判断一个DOM节点是否处于XML文档中。

    相关文章

      网友评论

          本文标题:JS判断数据类型的五种方法

          本文链接:https://www.haomeiwen.com/subject/mamibdtx.html