数组和对象?
数组实际上是由对象来创建得,又对象存在于堆中,所有数组也存在于堆中。
将对象转化成字符串模式:
方法一结合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指下标。