JAVASCRIPT里常用的判断数据类型的方法

Proud lion 前端 2020-09-17

#  **一、typeof**返回的数据类型,包含 number、boolean、symbol、string、object、undefined、function这几种。由此可以看出typeof没有办法得到引用类型的具体类型。代码: typeof 666 输出 number typeof null 输出 object typeof {} 输出 object typeof [] 输出 object typeof (function(){}) 输出 function typeof undefined 输出 undefined typeof '666' 输出 string 比如像数组、日期、正则 typeof只会返回处于其原型链最顶端的Object类型。只有function列外可以得到确切的类型。**二、instanceof**判断一直对象类型的方法 instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。 var aa = [1,2,3]; var bb = new Date(); var cc = function(){alert(111);}; var dd = function(){this.name="22";}; console.log(aa instanceof Array) //true console.log(bb instanceof Date) //true console.log(cc instanceof Function) //true**三、constructor**根据对象的constructor判断,返回对创建此对象的数组函数的引用。 var c= [1,2,3]; var d = new Date(); var e = function(){alert(111);}; alert(c.constructor === Array) //true alert(d.constructor === Date) //true alert(e.constructor === Function) //true**四、Object.prototype.toString.call()****所有数据类型均可判断(推荐) **这是对象的一个原生原型扩展函数,用来更精确的区分数据类型。 Object.prototype.toString.call('') ; // [object String] Object.prototype.toString.call(1) ; // [object Number] Object.prototype.toString.call(true) ; // [object Boolean] Object.prototype.toString.call(undefined) ; // [object Undefined] Object.prototype.toString.call(null) ; // [object Null] Object.prototype.toString.call(new Function()) ; // [object Function] Object.prototype.toString.call(new Date()) ; // [object Date] Object.prototype.toString.call([]) ; // [object Array] Object.prototype.toString.call(new RegExp()) ; // [object RegExp]**总结**以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。

Apipost 私有化火热进行中

评论