Javascript面试题精讲(一)——如何判断一个变量是数组还是对象

.看到这个题目,你是否想到了js中 typeof  用来判断类型,如果是,那么你就被pass。

一.为什么不能用typeof来判断呢?

首先你要知道typeof虽然能用来判断数据类型,但是它只能用来判断基本数据类型(number,string,underfind,boolean),对于数组和对象会统一返回 Object

 var a=[]
    var c=33
    var b={

    }
   
    console.log(typeof b)
    console.log(typeof a)

二.正确判断数组还是对象的几种方法

1.用 instanceof 判断

 

var a=[]
var b={}
console.log( a  instanceof  Array)
console.log( b  instanceof  Object)

 2.用constructor 判断

var a=[]
var b={}
console.log( a.constructor===Array)
console.log( b.constructor===Object)

结果也是  true

3.使用Object原型对象上的tostring()方法    重点

var a=[]
var b={}
console.log(Object.prototype.toString.call(a))
console.log( Object.prototype.toString.call(b))

 总结:以上就是判断是数组还是对象的几种方法,希望能帮助到你,如果还有更好的方法,评论区留言交流

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr.指尖舞者

如果帮助到了你,请给点赞助支持

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

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

打赏作者

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

抵扣说明:

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

余额充值