java中什么是底层数据结构_JavaScript 对象的底层数据结构是什么

这也是个老生常谈的问题,最近得空也开始总结下这方面的知识点。学过java的同学,都知道java把内存分为两种形式,一种是栈内存,另一种是堆内存。java的基本类型(int,short,long,byte,float,double,boolean,char)在栈区分配空间,所有的对象都在堆Heap中分配空间。我们按照这思路来谈下JavaScript。

相信看过我以前博客的朋友也知道,我以前也说过JavaSctipt 语言类型和类型检测的一些知识点,想再了解的朋友也可以点进去看下。JavaSctipt 语言类型和类型检测

在此之前,我先额外的补充下类型和存储结构的一些相干知识点

内置类型

JavaScript目前有八种内置类型(包含ES6的symbol):

null

undefined

string

number

boolean

object

symbol

BigInt

解释下typeof null 为 'object'的bug

JavaScript中的数据在底层是以二进制存储,比如null所有存储值都是0,但是底层的判断机制,只要前三位为0,就会判定为object,所以才会有typeof null === 'object'这个bug。

基本包装类型

string

number

boolean

自动创建的基本包装类型的对象,非Boolean,Number, String内置函数new出来的,对象只存在代码的执行瞬间。所有有些面试题也会问到String(1)和new String(1)的区别。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值