js类型检测方式
原创订单从最垃圾最有力的方法是: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
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除