[四种方法]检测数据类型

1.typeof

返回值是一个字符串,如果用两个及以上的typeof检测的话返回值"string",但是他有局限性,能详细检测基本数据类型,但是null不行,检测出来是object,对于引用数据类型步详细检测 只返回object和function.

2.instanceof

检测某个实例是否数据某各类,因为每一种数据类型都对应自己所属的类,所以我们可以通过他来检测数据类型,但是他也有局限性,对于基本数据类型用字面量创建方式创建的变量是无法检测的,但构造函数创建方式可以,引用数据类型可以详细检测

3.constructor

每个类的原型(prototype)上都有一个constructor属性,它指向类本身,那么一个具体的数据类型的实例.constructor 比如"11".constructor->"11"._ _ proto _ _ ->String.protype, string原型上有constructor指向string本身,你也可以通过他的name来得到String类名,也就是他的数据类型

4.Object.prototype.toString()

对象Object类的原型上有一个toString,他可以检测数类型,那么我们就调用Object.prototype.toString()这个方法,用call将里面的this改变成我项检测的那个数据类型,会得到toString console.log(({1:1}).toString());

这个方法不兼容所有浏览器,兼容写法如下⤵️

function getType(type){
  return Object.prototype.toString.call(type).split("")[1].replace("]",'');
}

转载于:https://www.cnblogs.com/Jiazexin/p/7080334.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值