javascript数据类型

typeof能判断哪些数据类型?

// 判断所有值类型
let a;                   typeof a //'undefined'
const str='abc';         typeof str//'string'
const n=100;             typeof n //'number'
const b=true;            typeof b //'boolen'
const s=Symbol('s');     typeof s //'symbol',注意symbol怎么声明的

// 能判断函数
typeof console.log                //'funcction'
typeof function(){}                //'funcction'

// 能识别引用类型(不能再继续识别)
typeof null          //'object'
typeof ['s','b']      //'object'
typeof {x:100}       //'object'

常见值类型

let a                    //undefined
const s='abc'
const n=100
const b=true
const s=Symbol('s')

常见引用类型

const obj={x:100}
const arr=['a','b','c']
const n=null        //特殊引用类型,指针指向为空地址
function fn(){}        //特殊引用类型,但不用于存储数据,所有没有“拷贝、复制函数”这一说
      

值类型和引用类型的区别

 

 

值类型放在栈里,栈从上往下排列
引用类型放在堆里,堆从下往上排列
为什么值类型是直接赋值,引用类型得复用内存地址是这样一个赋值形式:
因为考虑到性能问题,存储问题,
因为像值类型它的占用空间是比较少的,所以可以直接赋值没问题,
复制的时候也不会对性能造成很大的影响,引用类型就不一样了,
一个对象一个json可能非常大,
第一个会不好管理,
第二会在复制过程中非常慢。
所以值类型和引用类型的存储机制,赋值机制,拷贝机制都是严格的分开的,
它是基于内存的空间和CPU的耗时来做的这个一个区分,它是不得已而为之。
        

值类型,引用类型的拷贝,我们怎么去做深拷贝
https://segmentfault.com/a/11...

判断数据类型的方法(划重点来了,这是重点)
怎么判断一个变量是不是对象等问题的方法
对象原型

function dataType(data) {
        data = Object.prototype.toString.call(data);
        var type = {
            '[object String]': 'string',//字符串
            '[object Object]': 'object', //{}
            '[object Number]': 'number',//数字
            '[object Array]': 'array',//数组
            '[object Date]': 'date',//日期
            '[object Function]': 'function',//函数
            '[object Boolean]': 'boolean',//布尔值
            '[object Null]': 'null'//null
        };
        return type[data];
    }

我组建了一个前端学习交流群,学习前端技术。给大家分享学习资料,给大家匹配学习伙伴,定期组织大家进行项目实战。想要加入一起学习的小伙伴可以点击链接加入群聊【web前端技术群】:前端学习交流   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值