首页 > 其他分享 >JS中数据的存储方式和位置

JS中数据的存储方式和位置

时间:2023-10-08 14:23:55浏览次数:42  
标签:存储 对象 位置 数据类型 JS 地址 内存 引用

1.js数据类型

①原始数据类型:

Undefined,Null,Boolean,Number,String 

②引用数据类型:

对象,数组,函数

2.数据存储的位置

①原始数据类型:

         栈内存  原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小比较稳定,属于被频繁使用数据,所以放入栈中存储;

②引用数据类型:

         堆内存  引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定      在栈内存中只是存了一个地址来表示对堆内存中的引用。

                      堆内存是无序存储,可以根据引用直接获取。

 

当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。

所以,JavaScript中对引用数据类型的操作都是操作对象的引用而不是实际的对象。

可以理解为,栈内存中保存了一个地址,这个地址和堆内存中的实际值是相关联的。

3.关于复制

①引用数据类型

引用(基本)数据类型进行复制时,系统会自动为新的变量在栈内存中分配一个新的内存区域。

②引用数据类型

引用数据类型进行复制时,系统也会自动为新的变量在栈内存中分配一个值,但这个值仅仅是一个地址。也就是说,复制出来的变量和原有的变量具有相同的地址值,指向堆内存中的同一个对象。

如: var copyObj = obj, obj 和 copyObj  具有相同的地址值,指向堆内存中的同一个实际对象。

当修改 obj 或 copyObj 任意一个值时都会引起实际对象的值被修改。

标签:存储,对象,位置,数据类型,JS,地址,内存,引用
From: https://www.cnblogs.com/itjeff/p/17748943.html

相关文章

  • 非select 下拉框选定ul-li下拉选项, 元素是隐藏的需要用js修改为其属性为可见后,再做元
    遇到问题html中定位的下拉框内容是属性是隐藏的<ulid="reasonselect"style="display:none"fwin="mods"><li>广告/SPAM</li><li>恶意灌水</li><li>违规内容</li><li>文不对题</li><li>重复发帖</li>&......
  • js实现文件分片上传
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>JS分片上传-极速上传</title></head><body><inputtype="file"name="slice"id="slice&......
  • 【webapp】 JSP 的常见语法元素
    1.注释: JSP支持三种类型的注释:HTML注释、JSP注释和Java注释。HTML注释:使用 <!--注释内容--> 来添加HTML注释。JSP注释:使用 <%--注释内容--%> 来添加JSP注释。Java注释:使用 // 或 /**/ 来添加Java注释。2.声明: 使用 <%!声明代码%> 来定义......
  • JS 全屏和退出全屏--requestFullScreen详解及兼容代码
    浏览器全屏实现方式1.利用h5的 requestFullScreen2.摁F11实现全屏效果requestFullscreen全屏具体实现1.进入全屏   functionfull(ele){ if(ele.requestFullscreen){ ele.requestFullscreen(); }elseif(ele.mozRequestFullScr......
  • 【webapp】JSP工作原理和过程
    JSP编译:当客户端请求访问一个JSP页面时,Web服务器首先检查是否已经编译过该JSP页面。如果没有编译过或者源文件已更改,服务器会将JSP文件编译成一个Servlet源文件。Servlet编译:编译后的Servlet源文件进一步被编译成Java字节码文件,这个过程由服务器的JSP引擎完......
  • js_mind修改了支持单节点是否可编辑属性editable
    /***@licenseBSD*@[email protected]**ProjectHome:*https://github.com/hizzgdev/jsmind/*/;(function($w){'usestrict';console.warn("Theversionisoutdated.seedetails:https://hizzgdev.git......
  • 【Mysql】不要用int类型存储11位手机号
    一、遇到问题今天在做添加数据的时候,发现手机号存储错误,报错信息是:Cause:com.mysql.cj.jdbc.exceptions.MysqlDataTruncation:Datatruncation:Outofrangevalueforcolumn'f_phone'atrow1;Datatruncation:Outofrangevalueforcolumn'f_phone'atrow1;ne......
  • 总结mysql常见的存储引擎以及特点
    常见的mysql存储引擎有MyISAM和InnoDB。myISAM引擎特点:1.不支持事务2.表级锁定3.读写相互堵塞,写入不能读,读时不能写4.只缓存索引5.不支持外键约束6.不支持聚簇索引7.读数据较快,占用资源较少8.不支持MVCC(多版本并发控制)高并发9.崩溃恢复性较差10.MySQL5.5.5前默认数据......
  • 执行SQL语句&存储过程的真正【神器】,不用ORM的全选它,比dapper好
    支持.NetCore(2.0及以上)与.NetFramework(4.0及以上)(注意:升级了,可以覆盖到早期的.NetFramework4.0了,而且修复了数据库字段为Null时报错的问题,无敌了!!)此工具在IDataAccess接口中提供。 已被.Net圈内多家大厂采用!IDataAccess所在的命名空间是:DeveloperSharp.Framework.QueryE......
  • 记录--Vue 右键菜单的秘密:自适应位置的实现方法
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助下图这个情景,你是否也遇到过?当你右键点击网页上的某个元素时,弹出的菜单被屏幕边缘遮挡了,导致你无法看清或选择菜单项?上图中右键菜单的选项并不是固定不变的,它会根据不同的元素或场景来显示不同的选项。也就是......