数组和对象?
数组实际上是由对象来创建得,又对象存在于堆中,所有数组也存在于堆中。
将对象转化成字符串模式:
方法一结合for in用字符串拼接方式,如将对象obj转化成字符串模式
<script>
var str="";
for(var key in obj){
str += key+ "=" +obj[key]+"&" //key为对象属性或方法名,obj[key]为值或方法
}
console.log(str);
</script>
方法二JSON方式,即将对象转换为JSON字符串,还可以将JSON字符串逆转为回对象,该对象可以是普通对象还可以是数组。如同样针对对象obj
<script>
var str=JSON.stringify(obj); //将对象转换为JSON字符串
console.log(str); //如打印出为{"a":1,"b":2,"c":3}
var obj2=JSON.parse(str); //逆转回对象
console.log(obj2);
</script>
这是经常用到的方法,也常用于对象的复制。因为用for in来进行数组复制会存在引用的关系。
即利用JSON转换可以完成深复制。
属性名 in 对象 如”a” in obj //返回布尔值,用于判断属性名是否在对象下,常用于if判断。也可用于数组,如 3 in arr 3指下标。
本文深入探讨了数组和对象在内存中的存储位置,解释了数组实际上由对象创建并存储于堆中的原理。同时,详细介绍了两种将对象转换为字符串的方法:使用for in循环进行字符串拼接和利用JSON.stringify()进行转换,后者还可用于实现对象的深复制。
5574

被折叠的 条评论
为什么被折叠?



