js类型检测方式

原创
小哥 2年前 (2023-05-15) 阅读数 43 #大杂烩

订单从最垃圾最有力的方法是:typeof --> constructor --> instanceof --> toString

1.typeof

检测对象类型太模糊,function、object、array将返回类型object这方法是垃圾,但是它非常实用,拥有强大的气场

2.constructor

实例对象的构造函数 (实例对象.constructor)构造函数返回,可以区分类型

var str = abc;
        var num = 100;
        var arr = new Array();
        var date = new Date();
        alert(str.constructor);
        alert(num.constructor);
        alert(arr.constructor);
        alert(date.constructor);

3.instanceof

判断一个对象的一个实例构造函数(类)。

        var str=new String(abc);
        var num=new Number(100);
        var arr=new Array();
        var date=new Date();
        alert(str instanceof String);
        alert(num instanceof Number);
        alert(arr instanceof Array);
        alert(date instanceof Date);
        alert(str instanceof Object);

4.toString()

最强大的五星级的方法,该方法具有强大的功能和可以转换十进制和字符串值,使其高效使用

        console.log(Object.prototype.toString.call(5).slice(8,-1));
        console.log(Object.prototype.toString.call(abc).slice(8,-1));
        console.log(Object.prototype.toString.call(true).slice(8,-1));
        console.log(Object.prototype.toString.call(function(){}).slice(8,-1));
        console.log(Object.prototype.toString.call([]).slice(8,-1));
        console.log(Object.prototype.toString.call({}).slice(8,-1));
        console.log(Object.prototype.toString.call(/d/g).slice(8,-1));
        console.log(Object.prototype.toString.call(new Date).slice(8,-1));
        console.log(Object.prototype.toString.call(null).slice(8,-1));
        console.log(Object.prototype.toString.call(undefined).slice(8,-1));
        console.log(Object.prototype.toString.call(Math).slice(8,-1));

        // Number
        // String
        // Boolean
        // Function
        // Array
        // Object
        // RegExp
        // Date
        // Null
        // Undefined
        // Math
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门