小编给大家分享一下javascript中判断对象数据类型的方法是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
10年积累的成都做网站、网站建设、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有盐都免费网站建设让你可以放心的选择与我们合作。
对js中不同数据的布尔值类型总结:false:空字符串;null;undefined;0;NaN。true:除了上面的false的情况其他都为true;
javascript中有六种数据类型:string;boolean;Array;Object;null;undefined。如何检测这些数据类型呢,总结方法如下:
第一种方法:typeof
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(typeof obj) // object console.log(typeof arr) // object console.log(typeof str) // string console.log(typeof bool) // boolean console.log(typeof num) // number console.log(typeof n) // object console.log(typeof fn) // function
通过上面测试,发现typeof检测数组和字典时返回类型都是Object,无法区别是数组还是对象。如果想要检查是数组还是对象使用instanceof方法和constructor方法
第二种方法:instanceof
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj instanceof Object) // true console.log(arr instanceof Array) // true console.log(str instanceof String) // false console.log(bool instanceof Boolean) // false console.log(num instanceof Number) // false console.log(n instanceof Object) // false console.log(fn instanceof Function) // true
注意:instanceof 只可以用来判断数组和对象、函数,不能判断string、数字和boolean类型,如果需要判断string和boolean可使用tostring()方法。
特别注意:
instanceof方法在检查数组是否为对象时,返回结果为True
var arr = ['a','b','c'] console.log(arr instanceof Object) // true
如果使用instanceof需要严格判断是数组或者是对象时,改进代码如下:
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var getDataType = function(data){ if(data instanceof Array){ return 'Array' } else if (data instanceof Object){ return 'Object' } else{ return 'data is not obejct type' } } getDataType(obj) // Object getDataType(obj) // Array getDataType(obj) // data is not obejct type
第三种方法:constructor
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj.constructor == Object) // true console.log(arr.constructor == Array) // true console.log(str.constructor == String) // true console.log(bool.constructor == Boolean) // true console.log(num.constructor == Number) // true console.log(fn.constructor == Function) // true
测试发现constructor支持检查Object、Array、String、Boolean、Number、Function
第四种方法:toString(建议使用)
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(Object.prototype.toString.call(obj)) // [object Object] console.log(Object.prototype.toString.call(arr)) // [object Array] console.log(Object.prototype.toString.call(str)) // [object String] console.log(Object.prototype.toString.call(bool)) // [object Boolean] console.log(Object.prototype.toString.call(num)) // [object Number] console.log(Object.prototype.toString.call(n)) // [object Null] console.log(Object.prototype.toString.call(fn)) // [object Function]
从测试看出来,最好使用toString,这个方法功能比较全面。
以上是javascript中判断对象数据类型的方法是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!