继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript 简单类型与复杂类型

幕布斯7119047
关注TA
已关注
手记 432
粉丝 28
获赞 102

目录

目标

简单类型与复杂类型

值类型

引用类型

堆和栈

简单类型的内存分配

复杂类型的内存分配

简单类型传参

复杂类型传参

目标
能够说出简单数据类型的内存分配
能够说出复杂数据类型的内存分配
能够说出简单数据类型如何传参
能够说出复杂数据类型如何传参
简单类型与复杂类型
简单数据类型又称为基本数据类型或者值类型
复杂数据类型又称为引用类型
值类型
值类型:简单数据类型 / 基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
五大数据类型(值类型):string,number,boolean,undefined,null
其中 null 比较特殊,返回类型为 object

引用类型
复杂数据类型,在存储变量中存储的仅仅是地址(引用),因此称为引用类型
通过 new 关键字创建的对象(系统对象、自定义对象),如 object、array、date 等
堆和栈
堆栈空间分配区别:

栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等
其操作方式类似于数据结构中的栈
简单数据类型存放到栈中
堆(操作系统):存储复杂类型(对象),一般由程序员分配释放
若程序员不释放,由垃圾回收机制回收
复杂数据类型存放到堆里面
注意:

堆和栈是内存中两块互不干预的独立的空间
JavaScript 中没有堆和栈的概念
这里只是通过堆和栈的方式,帮助理解 JavaScript 代码的一些执行方式
简单类型的内存分配
值类型(简单数据类型):string,number,boolean,undefined,null
值类型变量的数据直接存放在变量(栈空间)中

复杂类型的内存分配
引用类型(复杂数据类型):通过 new 关键字创建的对象(系统对象、自定义对象)
如 object、array、date 等
引用类型在栈中存放变量(地址),十六进制表示
真正的对象实例存放在堆空间中

简单类型传参
函数的形参也可以看作是一个变量
当我们把一个值类型变量作为参数传给函数的形参时,其实就是把变量在栈空间的值复制了一份给形参
因此在方法内部对形参做任何修改,都不会影响到外部的变量

复杂类型传参
复杂数据类型在将实参传给形参的过程中,传递给形参的是实参的地址,而不是对象实例

————————————————

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP