22JS13——简单类型与复杂类型

news2024/11/23 23:54:28

文章目录

  • 一、简单类型与复杂类型
  • 二、堆和栈
  • 三、简单类型的内存分配
  • 四、复杂类型的内存分配
  • 五、简单类型传参
  • 六、复杂类型传参

目标:
1、简单类型与复杂类型
2、堆和栈
3、简单类型的内存分配
4、复杂类型的内存分配
5、简单类型传参
6、复杂类型传参

一、简单类型与复杂类型

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

· 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
string,number,boolean,undefined,null
特殊的是null:
在这里插入图片描述

· 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
通过new关键字创建的对象(系统对象、自定义对象),如ObjectArrayDate等

二、堆和栈

堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈
简单数据类型存放到栈里面
2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
复杂数据类型存放到堆里面
在这里插入图片描述

注意:JavaScript中没有堆栈的概念,通过堆栈的方式,可以让大家更容易理解代码的一些执行方式,便于将来学习其他语言。

三、简单类型的内存分配

· 值类型(简单数据类型):string,number,boolean,undefined,null
· 值类型变量的数据直接存放在变量(栈空间)中
在这里插入图片描述

四、复杂类型的内存分配

· 引用类型(复杂数据类型):通过new关键字创建的对象(系统对象、自定义对象),如Object、ArrayDate等
· 引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中
在这里插入图片描述

五、简单类型传参

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。
在这里插入图片描述
在这里插入图片描述

六、复杂类型传参

函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。
在这里插入图片描述
原理图:

在这里插入图片描述
执行 x.name = “张学友”
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

selenium爬虫运行慢如何解决?

Selenium作为一个强大的自动化工具,可用于编写爬虫程序,尽管Selenium在处理动态网页上非常强大,但对于静态网页爬简单数据提取,使用轻量级库或工具可能更加上所述,Selenium作为一个灵活可定动化工具,在需要…

如何正确使用DTM的Saga模式

DTM 简介 前面章节提及的MassTransit、dotnetcore/CAP都提供了分布式事务的处理能力,但也仅局限于Saga和本地消息表模式的实现。那有没有一个独立的分布式事务解决方案,涵盖多种分布式事务处理模式,如Saga、TCC、XA模式等。有,目…

真正的网工大佬,到底是什么样的?

大家好,我是许公子。 关于到底真正的网工大佬是什么样的,众说纷纭。 刚刚入行的小朋友,可能会觉得,是不是有HCIE的就算是网工大佬啊? 来几个老网工,评论区给他上一课哈哈。 就用这个点,跟你…

5年测试路,在字节终于爬到了半山腰,我不想被淘汰......

软件测试是一个付出就有回报的工作,可能很多人会说软件测试就是吃青春饭,然而其他工作又何尝不是?没有哪一家公司养尸位素餐之人,大龄员工有被辞退的,也有没被辞退的。干任何职业,抱着一劳永逸的心态&#…

MySQL----日志查询、备份与恢复

文章目录 一、MySQL日志管理二、MySQL 完全备份与恢复2.1备份的重要性2.2数据库备份的分类从物理与逻辑的角度从数据库的备份策略角度完全备份 三、MySQL 完全备份与恢复实验3.1物理冷备份与恢复3.2使用MySQL dump工具进行恢复备份恢复数据 3.3增量备份恢复 一、MySQL日志管理 …

LeetCod刷题笔记

目录 2739.总行驶距离 思路:模拟 代码 6890.找出分区值 思路:急转弯 代码: 1254.统计封闭岛屿的数目​编辑 思路:DFS 代码: 6447.给墙壁刷油漆 思路:动态规划 代码: 思路:状态DP 代码&…

Mac配置Android addr2line环境变量以及使用

1.首先进入终端 2.下面这个指令进入vim编辑器,就可以修改环境变量 vim ./.bash_profile3.按i进入insert模式 4.输入路径: arm32: export PATH${PATH}:/Users/xianquan/Library/Android/sdk/ndk/21.1.6352462/toolchains/arm-linux-androideabi-4.9/p…

Vue中如何进行自定义动画与动画效果设计

Vue中如何进行自定义动画与动画效果设计 在Vue中,动画效果是非常有用的,它可以使用户界面变得更加生动、有趣,从而提高用户体验。Vue提供了一套非常方便的动画系统,使得我们可以非常容易地实现动画效果。 在本文中,我…

6.19实训笔记

6.19实训笔记 6.19一、座右铭二、知识回顾2.1 Java集合体系2.2 工具类Utils 三、JavaIO流3.1 File类3.2 File类的使用3.2.1 File文件/文件夹类的创建3.2.2 File类的获取操作3.2.3 File类判断操作--boolean3.2.4 File类对文件/文件夹的增删改3.2.5 、File类的获取子文件夹以及子…

python+appium自动化测试-滑动到固定的位置停止

当前很多APP都存在滑动操作,但这些元素一般无法单独定位到,多为一个数组或列表,这边介绍了几种方法,使元素滑动到你想要的位置后停止。 一、scroll()方法 Appium 中webdriver提供scroll()方法来滚动页面,该方法只适用…

matplotlib---中文显示问题、字体库、图像结构、画布设置

1. 中文显示问题 解决方案一: 下载中文字体(黑体,看准系统版本) 步骤一:下载 SimHei 字体(或者其他的支持中文显示的字体也行) 步骤二:安装字体 linux下:拷贝字体到 usr…

三层架构综合实验

目录 拓扑结构: 要求: 确定广播域的个数 分配网段 配置Eth-Trunk 创建VLAN 配置STP生成树协议 修改根 边缘端口 SVI VRRP DHCP 路由部分 OSPF 缺省 汇总 NAT 拓扑结构: 要求: 1、内部IP地址基于172.16.0.0/16进行…

CABAC编解码原理分析

CABAC编解码原理分析 文章目录 CABAC编解码原理分析一、二进制算数编码二、CABAC编码三、CABAC编解码与普通的二元算术编码的区别四、 CABAC编解码中各个变量的计算:五、 一些其他问题:六、 总结:七、参考资料 一、二进制算数编码 cabac是一…

Nginx网络服务的配置

目录 一、Nginx概述 二、Nginx相对于Apache的优点 三、配置Nginx网络服务 1.编译安装和启用Nginx服务 2.修改Nginx主配置文件 一、Nginx概述 Nginx是一款高性能、轻量级Web服务软件。稳定性高,系统资源消耗低,对HTTP并发连接的处理能力高&#xff…

DNS 监控工具

域名系统 (DNS) 解析(也称为 DNS 查找)是在现代 IT 基础架构中建立连接和通信所需的基本组件之一。这是将人类可读的域或主机名与机器可读的 IP 地址映射的过程,使用户更容易访问组织的公共和专用网络上的主机。在最基…

SpringBoot 三级缓存解决循环依赖源码分析

文章目录 1. 不使用三级缓存可能存在的问题2. 源码分析2.1 对象实例的创建过程2.2 三级缓存的处理 3. 遗留问题 1. 不使用三级缓存可能存在的问题 在 SpringBoot 框架中,如果只存在两级缓存,那么当发生循环依赖的时候可能存在异常的对象创建流程如下图所…

如何解析 Impala 的 C++ 报错堆栈

生产环境用的都是release build,C代码产生的报错堆栈里没有函数名,很难像Java报错堆栈那样方便定位问题。下面是一个常见的启动报错,一般在CLASSPATH设置有误时发生: I0619 19:13:00.951988 5279 status.cc:129] Failed to find…

【全新升级版】R语言实战(第3版),超过30万学习者入手的R语言教程

在我刚入学那会儿初次接触R语言,看的第一本工具书就是《R语言实战》,收获良多,当时还只是第二版。最近和人民邮电出版社的好朋友交流发现,他告诉我上个月刚刚出版了《R语言实战 第三版》 ,豆瓣评分9.2,被称…

Linux之生产者消费者模型(上)——单生产者单消费者

文章目录 前言一、生产者消费者模型1.生产消费2.生产消费关系321原则生产消费模型的特点 二、基于阻塞队列(blockqueue)的生产消费模型1.概念2.单生产单消费模型代码运行分析两种情况导致的现象生产者生产的慢,消费者消费的快生产者生产的快&…

精彩回顾 | “XR云新未来:弹性算力赋能可交互、沉浸式商业实践” 赋能云端虚拟世界

6月15日,由平行云联合首都在线共同主办,中关村软件园协办,以“XR云新未来|弹性算力赋能可交互、沉浸式商业实践”为主题的XR行业交流盛会在北京成功举办。 活动邀请多位XR行业大咖,共同见证首都在线联合平行云发布Cloud XR平台。…