如何写一个函数去判断变量是什么数据类型???

什么能判断数据类型?

在JavaScript中

  1. typeof  运算符    用于检测给定变量的数据类型,并返回一个表示类型的字符串
  2. instanceof 运算符   用于检测对象是否是指定类型的实例。它可以判断对象是否属于特定的类或构造函数的实例
  3. Array.isArray( )  函数   检测一个值是否是数组类型。它返回一个布尔值
  4. Object.prototype.toString.call( ) 方法   返回一个表示对象类型的字符串

typeof怎么去判断呢?

写一个简单的示例代码 

function getType(test) {
  console.log(typeof test)
}

这样调用 getType 并传递参数  可以打印出他是什么类型的数据

但是typeof 有一个很严重的历史遗留问题, 它对于null进行判断的时候 会返回object  

所以 null 需要进行单独的判断

完整的函数判断

function getType(data) {
    if(data === null) {
        console.log(String(data))  
    } else if (typeof data === "object"){
        let type = Object.prototype.toString.call(data).replace("[object"."").replace("]","").toLowerCase()
        console.log(type)
    } else {
        console.log(typeof data)
    }
}

本函数接收一个参数  经过判断打印出对应的类型   使用时直接调用并传入值即可

代码解析:

第一个判断  是三个等式判断传入的数据是否为null    因为null在typeof 中无法判断

第二个判断  是用typeof判断传入的值是否为对象  如果是对象 则使用Object.prototype.toString方法   .call(data) 是获取对象的字符串表示, 返回一个以 [object 类型] 的格式表示对象的字符串  .replace方法是用来去掉字符串中多余的部分, 只保留对象对象的具体类型部分  .toLowerCase()方法将类型字符串转换为小写形式, 方便输出的时候统一格式  最后打印type(类型)值

第三个判断 是当数据不为 null 时 也不为对象类型时的判断   直接使用  typeof  运算符打印出出基本数据类型的结果

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值