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]'

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容