js类型以及存储方式
2024-10-21 09:44:21
一、js内置类型
基础类型:String, number, null, undefine, boolean, symbol, bigint
引用类型:Object(包含普通对象Object,数组对象Array,正则对象Regexp,日期对象Date,数学函数Math,函数对象function)
!注:js不支持创建自定义类型机制,所有的类型都是这8个类型之一。
二、存储位置
基础数据类型:存放在栈内存,被引用或被拷贝时候,会创建一个完全相等的变量,占据空间小,大小固定,属于被频繁使用的数据类型。
引用数据类型:存放在堆内存中,引用数据类型会在栈内存存储数据的地址,当使用引用类型时候,在栈内存获取堆内存地址,然后去堆内存根据地址寻找数据。多个栈内存可以使用同一个堆内存地址,所 以当其中一个变量改变了共享的数值时,其他所有的共享该值的变量都会改变。
三、js数据如何存储在内存中
js执行过程中,有三种类型的内存空间(代码空间,栈空间,堆空间),代码空间存储可执行的代码,基础类型存储在栈空间,引用类型存储在堆空间,访问引用类型的时候要先去栈空间获取存储地址。
在编译过程中,如果js引擎判断到一个闭包,也会在堆空间创造一个closure(fn)对象,用来保存闭包中的变量,所以闭包中的变量也会存储在堆空间。
!注:function使用引用参数时传入的是存储在栈空间的地址,使用return返回,会将创建一个新堆地址将返回值存入。
最新文章
- HDU 4858 分块
- JDK安装配置
- Html锚点定位偏差计算解决插件
- Oracle 服务器端执行带参数的procedure
- 解读Unity中的CG编写Shader系列二
- Codeforces Round #326 (Div. 2)-Duff and Meat
- Oracle Group by+rollup+cube 的应用
- LINUX启动顺序
- 两种高性能 I/O 设计模式 Reactor 和 Proactor
- python 使用win32com实现对word文档批量替换页眉页脚
- Linux 的进程间通信:管道
- react中的数据请求
- spring boot 自动更新静态文件和后台代码 -- 热部署
- Flask源码剖析详解
- Redis可以作为简单搜索引擎优化查询
- JS使用Crypto实现AES/ECS/zero-padding加密
- 【我整理的java开源项目】
- AtCoder Regular Contest 076E Coneected?
- java代码---继承-子类使用继承父类的属性。理解测试
- 【Template】template中如果包含post方法的form, 要在<;form>;之后添加{% csrf_token %}标签
热门文章
- “喜提”一个P2级故障—CMSGC太频繁,你知道这是什么鬼?
- mybatis 之定义拦截器 控制台SQL的打印
- MongoDB - 分片简介
- 通过Sqoop来传输mysql/oracle/vertica数据至Hive
- Unity_UIWidgets - 组件AppBar
- 论文翻译:2020:ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification
- 数据湖Hudi与对象存储Minio及Hive\Spark\Flink的集成
- mysql19-锁
- CSP-J初赛知识点
- freeRTOS检测栈溢出