- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对比引用类型与基本类型
引用类型与基本类型概念:基本类型也叫简单类型,存储的数据是单一的,如:学生的个数就是一个数字而已;引用类型也叫复杂类型,存储的数据是复杂的,如:学生,包括学号,姓名,性别,年龄等等很多信息。从内存(大家如果不懂内存,请查阅相关资料)的角度来说:基本类型只占用一块内存区域;引用类型占用两块内存区域。即定义基本类型的变量时,在内存中只申请一块空间,变量的值直接存放在该空间;定义引用类型的变量时(容易理解的是,我门看到new运算符,一般就是定义引用类型的变量),在内存中申请两块空间,第一块空间存储的是第二块空间的地址,第二块空间存储的是真正的数据;第一块空间叫作第二块空间的引用(地址),所以叫作引用类型。javaScript中的基本类型包括:数字(Number),字符串(String),布尔(Boolean),Null,Undefined五种;javascript的引用类型是:Object。而Array,Date是属于Obejct类型。画图理解:如下代码(都是定义了两个局部变量):function demoFun(){var num = 20;//定义了一个基本类型的变量。vararr = new Array(12,23,34);//定义了一个引用类型的变量}以上两行代码的内存图:可以看到,num变量只占用了一块内存区域;arr变量占用了两块内存区域,arr变量在栈区(不懂栈区的人,先不要想太多)申请了一块内存区域,存储着地址,存储的地址是堆区的地址。而堆区中真正才存储着数据,所以说,arr变量占用了两块内存区域。这样看来,引用类型的变量好像还占用内存多了。哈哈,不要着急,后面了解了引用类型的优点后,你就会觉得这是问题了。当我们读取num变量的值时,直接就能读到,但是当我们要读取arr里的值时,先找到arr中的地址,然后根据地址再找到对应的数据。引用类型,类似于windows操作系统中的快捷方式。快捷方式就是一个地址,真正的内容是快捷方式所指向的路径的内容。如:我们把d:\t.txt文件创建一个快捷方式放在桌面上,那么,桌面上的快捷方式会占用桌面的空间,而d:\t.txt会占用d盘的空间,所以,占用了两块空间。基本类型就相当于文件。引用类型,类似于我们在入学报名填写报名表时,填写家庭地址,这个家庭地址就相当于第一块空间,真正你家(第二块内存空间)不在报名表上。学校要找你家,先在报名表上找到你家的地址,然后根据地址,才能找到你家去。引用类型的优点:引用类型作为函数的参数时,优点特别明显,第一,形参传递给实参时,只需要传递地址,而不需要搬动大量的数据(节约了内存开销);第二,形参对应的数据改变时,实参对应的数据也在改变(很多时候,我们希望这样)。如以下代码:先定义函数(冒泡排序)function bubble(arr){for(vari=0;iarr.length-1;i++){for(var j=0;jarr.length-1-i;j++){if(arr[j]arr[j+1]){var temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}当调用冒泡排序时,var arr1 = [250,2,290,35,12,99];bubble(arr1);看看内存以上代码执行时的,内存变化:图中,当执行,①对应的代码(var arr1 = [250,2,290,35,12,99];)时,内存中会产生①对应的变化,即在栈中申请一块内存区域,起名为arr1,在堆区中申请内存空间放置250,2,290,35,12,99,并把堆区中的内存的地址赋给arr1的内存中;当执行②对应的代码bubble(arr1)时,调用函数。这时候会定义形参arr(内存中③对应的变化),即在栈中申请一块内存区域,起名为arr,并把arr1保存的地址赋给了arr(内存中②表示的赋值),这样,形参arr和实参arr1就指向了同一块内存区域。数组中的值250,2,290,35,12,99在内存中只有一份。即,不用把数组中每个元素的值再复制一份,节约了内存。如果对内存图看懂了,那么,当形参arr对应的数据顺序改变了,实参arr1对应的数据顺序也就改变了。即,实现了形参数据改变时,实参数据也改变了。所以,bubble函数不需要返回值,依然可以达到排序的目的。可以运行我示例中的代码,看看是不是达到了排序的效果。补充,基本类型作为函数参数的内存变化:内存图:引用类型变量的赋值:引用类型变量赋值时,赋的是地址。即两个引用类型变量里存储的是同一块地址,也就是说,两个引用类型变量都指向同一块内存区域。所以,两个引用类型变量对应的数据时一样的。再如:var person1 = {name:张三,sex:男,age:12};var person
您可能关注的文档
- 基于演化博弈的地方政府环境规制策略分析_潘峰.pdf
- 基于背景重构的运动对象越界侦测方法_洪虹.pdf
- 基于自上而下模型的银行操作风险压力测试——以5家上市银行为例.pdf
- 基于自由运动一维标定物的多摄像机参数标定方法与实验.pdf
- 基于节点特性的ZigBee网络能量优化路由研究.pdf
- 基于飞思卡尔微控制器的CANBootloader的实现与应用_刘矗.pdf
- 基础化学-第十章-过渡元素cz2011.pdf
- 基础化学-第九章-主族元素cz2011.pdf
- 多媒体教育营销分析.pdf
- 多同性源阵列电阻率法隧道超前探测方法与物理模拟试验研究_李术才.pdf
- 湖南省衡阳市第八中学2026届高三上学期第一次月考物理(原卷版).doc
- 浙江省普通高中尖峰联盟2026届高三上学期10月联考英语(原卷版).doc
- 四川省绵阳市南山中学实验学校2026届高三上学期10月月考英语(原卷版).doc
- 湖南省衡阳市第八中学2026届高三上学期第二次月考历史 Word版含解析.doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题09 功和机械能(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题10 内能及其利用(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题07 压强(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题01 机械运动(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(解析版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(原卷版).doc
最近下载
- 国家法定41种传染病大全(就诊科室、传播途径、病原体、检测方法等)及防护措施.doc VIP
- 2026届河南省青桐鸣大联考高三11月联考作文:“用一个字证明你不是机器人,你会选什么字”导写及范文.docx
- 公路工程试验检测机构等级评定基本条件要求及申请材料准备注意要点(每日一练).docx VIP
- 基于ZigBee的智能窗帘控制系统.doc VIP
- 入党志愿书(全电子版).pdf VIP
- 移动应用开发大学生职业生涯规划规划书.pptx VIP
- 江苏开放大学2023年秋《行政管理学050004》实践性环节2大作业参考答案.pdf VIP
- 2025必威体育精装版幼儿园膳食委员会会议记录.docx VIP
- 小学科学教学评价中增值性评价策略研究与实践教学研究课题报告.docx
- 幼儿园膳食委员会会议记录.doc VIP
有哪些信誉好的足球投注网站
文档评论(0)