js数据类型详解&&手动实现数据类型检测

js数据类型:

基础数据类型:string,number,boolean,null,undefined,null,symbol(es6新增的数据类型)

引用数据类型:Object(Function,Math,RegExp,Array,Date)

基础数据类型保存在栈内存中,在引用或拷贝时,会创建一个完全相等的变量

引用数据类型保存在堆内存中,存储的时一个地址,当被引用或拷贝时,会创建一个引用,多个引用指向相同的内存地址,当改变一个内存地址时,所有的引用都会发生变化

对于数据类型的检测:

1.typeof: typeof可以检测基础数据,对于基础数据类型可以进行判断,其中对于null会判断为object,对于function会判断为function

2.instanceof 对于引用数据类型进行判断,但是不能判断基础数据类型

3.Object.prototype.toString.call(),利用Object上的原型链上的方法进行判断,返回的结果是【Object, Xxx】

数据类型检测实现:

    function getType(obj) {
        let type = typeof obj;   
        if(type !== 'object') {
            return type;// 对于基础数据类型直接返回
        }
        return Object.prototype.toString.call(obj).replace(/^\[object(\S+)\]$/,'$1'); 
    }
    console.log(getType([])) //[object Array]

 

posted @ 2021-08-14 18:14  千亿昔  阅读(43)  评论(0编辑  收藏  举报