本篇文章给大家带来的内容是关于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
相关推荐:
Javascript isArray 数组类型检测函数_javascript技巧
以上是js中类型检测的四种方法介绍(代码)的详细内容。更多信息请关注PHP中文网其他相关文章!