js数据类型检测

1、typeof 可检测除null以外的基本数据类型和function
直接在计算机底层基于数据类型的值(二进制)进行检测
typeof null // "object" 对象存储在计算机中,都是以000开始的二进制存储,null也是,所以检测出来的结果是对象
typeod 普通对象/数组对象/正则对象/日期对象 ==> “object”
2、 instanceof 检测当前实例是否属于这个类
底层机制:只要当前类的原型出现在实例的原型链上,结果都是true
由于可以肆意修改原型指向,所以检测出来的结果是不准的
不能检测基本数据类型

1 instanceof Number // false
let arr=[1,2,3]
arr instanceof Array // true
arr instanceof Object // true

3、constructor
看着比instanceof好用一些,支持基本类型
constructor可以随意修改,检测结果也不准确

let num=1
num.constructor===Number // true
arr.constructor===Array // true
arr.constructor===Object // false

4、Object.prototype.toSting.call()
标准检测数据类型的方法:返回当前实例所属类的信息

Object.prototype.toString.call(arr) // '[object Array]'
Object.prototype.toString.call(num) // '[object Number]'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值