本篇文章给大家带来的内容是关于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
相关推荐:
js数据类型检测的4种方法
javascript isarray 数组类型检测函数_javascript技巧
javascript中对数据类型检测的方法总结
以上就是js中类型检测的四种方法介绍(代码)的详细内容。