JS数据的存储机制分别为:堆、栈
系统的数据类型大概分为普通类型:staing、number 和引用类型arr[]、function(){}。
数据类型在构建后会有对应指针,在栈的范围里,如果a变量创建了一个对象,创建的b对象等于a,此时b对象内的值会引用a值,这两个值是分别独立的。但如果使用引用类型,a创建了一个数组,此时数据的值会到堆的区块内,如果创建一个对象b=a,那么b的值会共用堆里面a的值,此时就会出现一个问题,因为他俩的值是共用的,更改b的值会影响到a。
浅拷贝:引用类型数据当被重新复制的时候,由于存储机制问题,只赋值到了引用类型的内存指针,导致内存指针指向同一内存,当引用类型进行数据变更的时候,影响原数据。
在一些特定场合下,我们从后台接到的数据可能不是直接的数组,它可能是一个字符串,我们拿到后段传来的值之后可以按照自己的框架体系来进行数据重组。获取到大批量数据后,数据需要遍历到对应的模块,此时需要用到数组。
JSON.stringfiy() :序列化:将一个对象序列化为一个字符串
JSON.parse() :反序列化将一个序列化的字符串还原成对象
使用场景:
js cookie保存数据
处理后端接口[{"aaaa":"admin",data:"",msg:""}]