- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
-
web前端培训教程:JS变量、作用域和内存问题
JavaScript的变量与其他语言的变量有很大区别。JavaScript变量是松散型的(不
制类型)本质,决定了它只是在特定时间用于保存特定值的一个名字而已。由于不存在定
义*个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可以在脚本的生命周
期内改变。
一.变量及作用域
1.基本类型和引用类型的值
ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值。基
本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。
而引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一
个指针,这个指针指向内存中的另一个位置,该位置保存对象。
将一个值赋给变量时,解析器必须确定这个值是基本类型值,还是引用类型值。基本
类型值有以下几种:Undefined、Null、Boolean、Number和String。这些类型在
内存中分别占有固定大小的空间,他们的值保存在栈空间,我们通过按值来访问的。
PS:在*些语言中,字符串以对象的形式来表示,因此被认为是引用类型。
ECMAScript放弃这一传统。
如果赋值的是引用类型的值,则必须在堆内存中为这个值分配空间。由于这种值的大
小不固定,因此不能把它们保存到栈内存中。但内存地址大小的固定的,因此可以将内存地
址保存在栈内存中。这样,当查询引用类型的变量时,先从栈中读取内存地址,然后再通过
地址找到堆中的值。对于这种,我们把它叫做按引用访问。
2.动态属性
.z.
-
定义基本类型值和引用类型值的方式是相似的:创建一个变量并为该变量赋值。但是,
当这个值保存到变量中以后,对不同类型值可以执行的操作则大相径庭。
varbo*=newObject();//创建引用类型
bo*.name=Lee;//新增一个属性
alert(bo*.name);//输出
如果是基本类型的值添加属性的话,就会出现问题了。
varbo*=Lee;//创建一个基本类型
bo*.age=27;//给基本类型添加属性
alert(bo*.age);//undefined
3.复制变量值
在变量复制方面,基本类型和引用类型也有所不同。基本类型复制的是值本身,而引
用类型复制的是地址。
varbo*=Lee;//在栈内存生成一个bo*Lee
varbo*2=bo*;//在栈内存再生成一个bo*2Lee
bo*2是虽然是bo*1的一个副本,但从图示可以看出,它是完全独立的。也就是说,
两个变量分别操作时互不影响。
varbo*=newObject();//创建一个引用类型
bo*.name=Lee;//新增一个属性
varbo*2=bo*;//把引用地址赋值给bo*2
在引用类型中,bo*2其实就是bo*,因为他们指向的是同一个对象。如果这个对象
中的name属性被修改了,bo*2.name和bo*.name输出的值都会被相应修改掉了。
4.传递参数
.z.
-
ECMAScript中所有函数的参数都是按值传递的,言下之意就是说,参数不会按引用
传递,虽然变量有基本类型和引用类型之分。
functionbo*(num){//按值传递,传递的参数是基本类型
num+=10;//这里的num是局部变量,全局无效
returnnum;
}
varnum=50;
varresult=bo*(num);
您可能关注的文档
- 发挥检察职能促进社会管理创新的思考.pdf
- 卫生级不锈钢管道施工方案及对策.pdf
- “东方伊甸园”旅游计划-网络广告策划书.pptx
- 六年级科学下册课件-5消化与吸收56-冀人版 (共16张ppt).pptx
- 道路保通方案.pdf
- 降压斩波变换技术的工程应用.pdf
- 二年级下册音乐教案 第三单元 活动 动物联欢会《十二生肖歌》|人教版 (5).docx
- 土木工程施工计算题试题库.pdf
- 压力传感器温度补偿的研究报告.pdf
- 注塑机现场工况调查表-会议议程表.docx
- 一年级下册美术教学设计-海底世界多奇妙8-岭南版.docx
- 四年级下册心理健康教学设计 - 第11课 自己的事自己做 全国通用.docx
- 统编版小学语文四年级下册1 古诗词三首 教案.docx
- 五年级下册综合实践活动教案-寻访北冰洋 全国通用.docx
- 乘风破浪会有时(教案)通用版心理健康六年级上册 .docx
- 一年级下册数学教案-1.5 十几减6、5、4、3、2丨苏教版 .docx
- 统计图的选择(教案)2023-2024学年数学六年级上册 北师大版.docx
- 六年级主题班会教案-唱响毕业歌 全国通用.docx
- 部编版语文四年级上册第2单元 语文园地二(教案).docx
- 国外非营利组织理论的研究进展.pptx
最近下载
- 02 中国核工业华兴建设有限公司安全生产标准化达标创建工作总结汇报.pptx
- 2024首届全国红旗杯班组长大赛题库及答案(第8001-10000题).docx VIP
- 国家开放大学,期末考试参考资料纳税实务.docx
- 一种风电叶片前缘防护系统.pdf VIP
- 机械类外文文献翻译.docx
- 通用版2024年党纪学习教育ppt(党课).pptx VIP
- 我的第二个图书馆Usborne Young Reading Series One -- Puss in Boots.docx VIP
- 民航定额说明宣贯.pdf VIP
- 维谛 ITA30&40&NX30&40k 节能认证检测报告.pdf
- 妇科护理带教老师ppt.pptx
文档评论(0)