js类型检测

45 阅读1分钟

js类型检测的方式

typeof //检测基本数据类型,根据类型的二进制编码判断 
instanceof //检测对象是否属于类
constructor //检测对象的构造函数
Object.prototype.toString.call() //检测对象的类型信息
typeof null //object 二进制编码和对象一样

最准确的方式是

Object.prototype.toString.call

instanceof的实现


function instance_of(instance,obj){
    let objproto=obj.prototype, instanceproto=Object.getPrototypeOf(instance);//instance__proto__
    while(true){
        if(instanceproto==null){
            return false;
        }
        if(instanceproto==objproto){
            return true;
        }
        instanceproto=Object.getPrototypeOf(instanceproto);
    }
}