数据类型检测的四种方式

Posted qiqi105

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型检测的四种方式相关的知识,希望对你有一定的参考价值。

/*typeof:检测数据类型的运算符
返回的都是一个字符串
类型:number string boolean undefined function object*/
console.log(typeof 12);
console.log(typeof "14");
console.log(typeof undefined);
console.log(typeof function text(){});
console.log(typeof null);//空对象指针
/*instanceof:检测实例是否属于某一个类
只要在原型链上,结果都为true
局限性:原型链*/
console.log(1 instanceof Number);//f
console.log(new Number(1) instanceof Number);//t

/*constructor:构造函数
基本数据类型的可以检测
局限性:原型如果被重写,检测的结果很不准确*/
var num=1;
console.log(num.constructor==Number);
function Fn(){

}
Fn.prototype=new Array();
//Fn.prototype.constructor=Fn;
var f=new Fn();
console.log(f.constructor);
console.log(Object.prototype.toString.call(f.constructor));
console.log(‘---------‘);
/*null undefined他们所属类是Null和Undefined*/
/*Object:函数数据类型(in hasPrototyOf)
最准确的检测方式*/
//toString专题
//Object.prototype.toString();
console.log(typeof (1).toString());
//Number.prototype.toString 字符串
console.log((1).__proto__.__proto__.toString());
console.log(Object.prototype.toString.call(1));
console.log({}.toString.call(1));
//Object.prototype.toString => [object Object]
//Math,Object的toString当前方法的执行主体(this)所属类的执行信息=>[object Object] [object Math]
var obj={name:‘qiqi‘};
console.log(obj.toString());
/*[object Object] 第一个object是当前实例是对象数据类型的,第二个Object是obj所属类是Object*/
console.log(Math.toString());//=>"[object Math]";

以上是关于数据类型检测的四种方式的主要内容,如果未能解决你的问题,请参考以下文章

js学习总结----数据类型检测的四种方式(转载)

JS中检测数据类型的四种方法

检测数据类型的四种方法

JS的四种类型识别方式

JS类型判断的几种方式

JS中检测数据类型的四种方法