js中判断是否对象的方法

本文介绍了JavaScript中三种常见的类型判断方法:typeof的局限性、instanceof用于对象和数组识别,以及Object.prototype.toString.call()的精确性。重点讲解了这些方法在实践中的应用和区别。
摘要由CSDN通过智能技术生成

目前据我所知的方法共有三种

1. typeof

let obj ={a:1,b=2,c:3}
console.log(typeof(obj)) //返回'object'

从判断结果上来看,似乎并没有太大的问题,但如果你把对象改为数组,他返回的也会是同样的结果,因此不推荐这种写法,
对于数组、函数、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串,
null也会返回’object’
对NaN返回是’number’
感兴趣的小伙伴可以自己动手实现一下

2. instanceof Object

let obj ={a:1,b=2,c:3}
let arr =[1,2,3]
console.log(obj instanceof Object) //返回'true'
console.log(arr instanceof Array) //返回'true'

这种方法返回的是boolean类型,基本可以实现我们想要的结果,不仅这样,它还可以判断是否为数组,讲到这里,还有种判断数组的方法,我也想分享给大家
Array.isArray(arr) 返回类型也是boolean类型

3. Object.prototype.toString.call()

let obj ={a:1,b=2,c:3}
let arr =[1,2,3]
console.log(Object.prototype.toString.call(arr)) //返回'[object Array]'
console.log(Object.prototype.toString.call(obj)) //返回'[object Object]'

这种方法可以更为严格的判断对象是什么类型,我更比较喜欢这一种,当然,如果你还有其他的方法,欢迎在评论区指出哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端深造中

老板别忘了支持哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值