js数据类型笔记

JavaScript一共有8种数据类型
其中有7种基本数据类型:
ES5的5种:Null,undefined,Boolean,Number,String,
ES6新增:Symbol 表示独一无二的值
ES10新增:BigInt 表示任意大的整数
一种引用数据类型:
Object(本质上是由一组无序的键值对组成)
包含function,Array,Date等。JavaScript不支持创建任何自定义类型的数据,也就是说JavaScript中所有值的类型都是上面8中之一。
存储方式

基本数据类型:直接存储在栈内存中,占据空间小,大小固定,属于被频繁使用的数据。
引用数据类型:同时存储在栈内存与堆内存中,占据空间大,大小不固定。引用数据类型将指针存在栈中,将值存在堆中。
当我们把对象值赋值给另外一个变量时,复制的是对象的指针,指向同一块内存地址。

null 与 undefined的异同
相同点:
Undefined 和 Null 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined 和 null
不同点:
undefined 代表的含义是已定义、未赋值, null 代表的含义是空对象。
typeof null 返回'object',typeof undefined 返回'undefined'

null == undefined  // true
null === undefined // false

其实 null 不是对象,虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。在 JS 的最初版本中使用的是 32 位系统,
为了性能考虑使用低位存储变量的类型信息,000 开头代表是对象,然而 null 表示为全零,所以将它错误的判断为 object 。虽然现在的内部类型判断代码已经改变了,
但是对于这个 Bug 却是一直流传下来。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值