【JavaScript】基本类型&复杂类型

偶遇前端一只小菜鸟,讨论起JS中的数据类型问题,现将我们讨论后,以及自己不完全的理解记录一下,问题的起初他看这篇详细的JS文档是发现的:

JS中的基本数据类型,可直接存取,有五种:字符串 数值 布尔类型 null undefined 

基本类型的复制

JS中的复杂数据类型,通过引用的方式存取,有三种:对象 数组 函数 正则

复杂类型的复制

为什么有上述的结果呢?也就是说,直接存取引用方式到底是哪里不同呢?

JS中,从变量的存储来看,分为两个地方,栈内存和堆内存。

栈里保存基本数据类型;复杂类型中,堆里保存的才是对象,而栈内存中保存的是一个指针。

JS中,变量的访问方式来看,分为按值访问和按引用访问。

基本类型是按值访问的,操作的就是实际保存的数值。

引用类型(复杂类型)是按引用访问的,操作的是指针,也就是说,需要访问时,先从栈中读取指针--指针可以认为是地址,也就是保存着对象的地址,顺着这个地址,就可以找到堆中的对象了。

似乎是:找到家🏠,还是找到家🏠的地址。

JS中,变量的复制方式来看,分为值复制和引用复制。

基本类型之间的复制就是值复制啦。

引用类型(复杂类型)的复制就是引用复制,也就是说复制指针。

似乎是:给别人一个苹果🍎;或是给别人一份放那唯一的一个苹果🍎所存放的地址。


因自己也是前端小菜鸟,现将参考前辈的资料列一下,因我说不清楚的,可以去前辈的文章那里看。

犯迷糊的小羊🐑 时间对象&引用类型-Assignment

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容