js的数据类型有哪些,值是如何存储的?

js的数据类型有基本类型和引用类型

1.基本数据类型(BS3N)

1.Boolean(B)
2.String(S)
3.underfined(N)
4.Null(N)
5.Number(N)
6.symbol(ES6的)
基本数据类型都储存在栈中(stack),栈是有结构的,每个区块都是按照后进先出的方式次序存放,基本类型的数据相对是比较稳定的,占的内存也比较小,所有寻找速度比较快,如果基本类型复制的话,栈中重新开辟个新的内存空间来储存新复制的新值,所以两者是独立的,没有任何关联!

2.引用数据类型(复杂类型)

1.Array
2.Object
堆是没有结构的,数据可以任意存放,引用类型的值是储存在堆中(heap),但是栈内存中保存着一个堆内存的对象的引用,所以我们常常实际操作的是引用而不是操作实际的对象!你可以这么理解,栈中保存着一个地址,这个地址指向堆中的对象,如果复制的是引用类型,那么复制的是栈内存中的引用地址,两个引用地址指向的还是同一个对象!

3.为什么基本数据类型存在栈中,而引用数据类型存在堆中呢?

1.基本数据类型比较稳定,大小基本是固定的,占用的内存比较小
2.堆比栈大,栈的速度比队快
3.堆是无序的,栈的有序的
4.引用数据类型的大小的不可控的,动态的,所以储存在堆中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章