js类型以及存储方式


一、js内置类型

基础类型:String, number, null, undefine, boolean, symbol, bigint

引用类型:Object(包含普通对象Object,数组对象Array,正则对象Regexp,日期对象Date,数学函数Math,函数对象function)

!注:js不支持创建自定义类型机制,所有的类型都是这8个类型之一。

二、存储位置

基础数据类型:存放在栈内存,被引用或被拷贝时候,会创建一个完全相等的变量,占据空间小,大小固定,属于被频繁使用的数据类型。

引用数据类型:存放在堆内存中,引用数据类型会在栈内存存储数据的地址,当使用引用类型时候,在栈内存获取堆内存地址,然后去堆内存根据地址寻找数据。多个栈内存可以使用同一个堆内存地址,所                          以当其中一个变量改变了共享的数值时,其他所有的共享该值的变量都会改变。

三、js数据如何存储在内存中

js执行过程中,有三种类型的内存空间(代码空间,栈空间,堆空间),代码空间存储可执行的代码,基础类型存储在栈空间,引用类型存储在堆空间,访问引用类型的时候要先去栈空间获取存储地址。

在编译过程中,如果js引擎判断到一个闭包,也会在堆空间创造一个closure(fn)对象,用来保存闭包中的变量,所以闭包中的变量也会存储在堆空间。

!注:function使用引用参数时传入的是存储在栈空间的地址,使用return返回,会将创建一个新堆地址将返回值存入。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM