一、js内置类型

基础类型:String, number, null, undefine, boolean, symbol, bigint

引用类型:Object(包含普通对象Object,数组对象Array,正则对象Regexp,日期对象Date,数学函数Math,函数对象function)

!注:js不支持创建自定义类型机制,所有的类型都是这8个类型之一。

二、存储位置

基础数据类型:存放在栈内存,被引用或被拷贝时候,会创建一个完全相等的变量,占据空间小,大小固定,属于被频繁使用的数据类型。

引用数据类型:存放在堆内存中,引用数据类型会在栈内存存储数据的地址,当使用引用类型时候,在栈内存获取堆内存地址,然后去堆内存根据地址寻找数据。多个栈内存可以使用同一个堆内存地址,所                          以当其中一个变量改变了共享的数值时,其他所有的共享该值的变量都会改变。

三、js数据如何存储在内存中

js执行过程中,有三种类型的内存空间(代码空间,栈空间,堆空间),代码空间存储可执行的代码,基础类型存储在栈空间,引用类型存储在堆空间,访问引用类型的时候要先去栈空间获取存储地址。

在编译过程中,如果js引擎判断到一个闭包,也会在堆空间创造一个closure(fn)对象,用来保存闭包中的变量,所以闭包中的变量也会存储在堆空间。

!注:function使用引用参数时传入的是存储在栈空间的地址,使用return返回,会将创建一个新堆地址将返回值存入。

最新文章

  1. HDU 4858 分块
  2. JDK安装配置
  3. Html锚点定位偏差计算解决插件
  4. Oracle 服务器端执行带参数的procedure
  5. 解读Unity中的CG编写Shader系列二
  6. Codeforces Round #326 (Div. 2)-Duff and Meat
  7. Oracle Group by+rollup+cube 的应用
  8. LINUX启动顺序
  9. 两种高性能 I/O 设计模式 Reactor 和 Proactor
  10. python 使用win32com实现对word文档批量替换页眉页脚
  11. Linux 的进程间通信:管道
  12. react中的数据请求
  13. spring boot 自动更新静态文件和后台代码 -- 热部署
  14. Flask源码剖析详解
  15. Redis可以作为简单搜索引擎优化查询
  16. JS使用Crypto实现AES/ECS/zero-padding加密
  17. 【我整理的java开源项目】
  18. AtCoder Regular Contest 076E Coneected?
  19. java代码---继承-子类使用继承父类的属性。理解测试
  20. 【Template】template中如果包含post方法的form, 要在<form>之后添加{% csrf_token %}标签

热门文章

  1. “喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?
  2. mybatis 之定义拦截器 控制台SQL的打印
  3. MongoDB - 分片简介
  4. 通过Sqoop来传输mysql/oracle/vertica数据至Hive
  5. Unity_UIWidgets - 组件AppBar
  6. 论文翻译:2020:ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification
  7. 数据湖Hudi与对象存储Minio及Hive\Spark\Flink的集成
  8. mysql19-锁
  9. CSP-J初赛知识点
  10. freeRTOS检测栈溢出