ES6判断对象类型的方法

数组对象

var arr=[{"name":"ls","age":12},{"name":"jason","age":22},12];

1、 typeof 判断

console.log( typeof arr)
console.log( typeof arr=='object')
//typeof的一个不好的地方就是它会把Array还有用户自定义函数都返回为object

2、构造函数指针 判断

console.log(arr.constructor.name)
console.log(arr.constructor.name==Array)
console.log(arr.constructor.name=='Array')
//打印构造函数指针
console.log(a.constructor)
function Array() { [native code] }
//打印Array函数
console.log(Array)
function Array() { [native code] }
//两个完全一致的函数作比较
console.log(a.constructor==Array)
true

3、instranceof 判断

console.log( arr instanceof Array)
//利用typeof和constructor进行严格判断
 console.log((typeof arr=="object") && (arr.constructor==Array))
 console.log((typeof arr=="object") && (arr.constructor.name=='Array'))

4、原型函数 判断

console.log(Object.prototype.toString.call(arr));
//封装改进后的函数
console.log(type(arr));
var class2type = {},     //用于记录[object class]样式  
objs = "Boolean Number String Function Array Date RegExp Null Undefined".split(" ");  
for (var i = 0, l = objs.length; i < l; i++) {  
     class2type[ "[object " + objs[i] + "]" ] = objs[i].toLowerCase();  
}  
function type(obj) {  
     return class2type[ Object.prototype.toString.call(obj) ] || "object";  
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值