垃圾回收(GC),就像人生活的时间长了会产生垃圾一样,程序运行过程中也会产生垃圾。 这些垃圾积攒过多以后,就会导致程序运行的速度过慢,所以我们需要一个垃圾回收机制,来处理程序运行过程过产生垃圾
var obj=new Object();
obj.name="zhangsan";
//....操作完以后
obj=null;
索引:从0开始的整数就是索引
//创建数组对象
var arr=new Array();
console.log(typeof arr);
/*
向数组中添加元素
语法:数组[索引] = 值
*/
arr[0]=12;
arr[1]=34;
arr[2]=56;
arr[4]=67;
console.log(arr);
读取数组中的元素
语法:数组[索引]
如果读取不存在的索引,不会报错而是返回undefined
console.log(arr[1]);//12
console.log(arr[3]);//undefined
获取数组的长度,可以使用length这个属性获取
语法:数组.length
尽量不要创建非连续数组
console.log(arr.length);
修改length
arr.length=10;
// console.log(arr);
arr.length=2;
console.log(arr);
//创建一个数组
var arr=new Array();
//使用字面量来创建数组
var arr1=[];
//语法:[]
console.log(arr1);
//使用字面量创建数组时,可以在创建时就指定数组中的元素
var arr2=[12,34,56,7,8,9,0,3,5];
//console.log(arr2[2]);//56
console.log(arr2);
//使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数传递,元素之间使用,隔开
var arr3=new Array(12,34,56,7,8,9,0,3,5);
console.log(arr3);
//创建数组arr4,这个数组中只有一个元素10
var arr4=[10];
console.log(arr4);
//创建一个长度为10的数组
var arr5=new Array(10);
console.log(arr5);
//数组的值可以是任意的数据类型,包含对象的
var arr6=["hello",123,false,undefined,null];
console.log(arr6);
//数组中可以存放函数
var arr7=[function(){alert(123);},function(){alert("helloworld");}];
console.log(arr7[0]);
// arr7[0]();
//二维数组
var arr8=[
[1,3,4,5],
[1,4,6,7]
];
console.log(arr8[1][2]);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
var arr2=arr.concat(arr1);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
var str=arr.join("~~");
console.log(arr);
console.log(str);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
var num=arr.push("小白","小黑");
console.log(num);
console.log(arr);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
var result=arr.pop();
// arr.pop();
console.log("result="+result);
console.log(arr);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
var num=arr.unshift("小白","小黑");
console.log("num="+num);
console.log(arr);
var arr=["小明","小红","小橙"];
var arr1=["小黑","小绿","小蓝"];
arr.shift();
console.log(arr);
for(var i=0;i<arr.length;i++){
//每一次循环,就会遍历到数组中的一个元素
//将当前遍历到的数组元素,保存到一个变量中
}
//创建一个数组
var arr=["小明","小红","小橙","小蓝","小绿"];
//所谓的遍历数组,就是将数组中所有的元素都取出来
// for(var i=0;i<arr.length;i++){
// console.log(arr[i]);
// }
for(var o in arr){
// console.log(o);
// console.log(arr[o]);
}
//创建一个函数,可以将arrPerson中年满18岁的Person提取出来,然后封装到到一个新的数组并返回
function Person(name,age){
this.name=name;
this.age=age;
}
var p1=new Person("小红",12);
var p2=new Person("小橙",17);
var p3=new Person("小黄",19);
var p4=new Person("小绿",32);
var p5=new Person("小青",22);
var p6=new Person("小蓝",24);
var p7=new Person("小紫",42);
var arrPerson=[p1,p2,p3,p4,p5,p6,p7];
function getAdult(arr){
var arrAdult=[];
///写你自己赛选功能的代码
for(var i=0;i<arr.length;i++){
// console.log(arr[i]);
//如果年满18,就把该对象添加到arrAdult数组中
if(arr[i].age>=18){
arrAdult.push(arr[i]);
}
}
return arrAdult;
}
// var adult=getAdult(arrPerson);
var adult=getAdult(arrPerson);
console.log(adult);
数组中有一个方法可以遍历数组,这个方法就是forEach()
forEach()
方法时,不需要调用,只需要将函数定义传递进去forEach()
方法中传递的函数,需要我们自己来定义 arr.forEach(function(value,index,array){
console.log(value);
console.log(index);
console.log(array);
});
forEach()
map 方法是数组对象的一个内置方法,它会对数组中的每个元素执行指定的回调函数,并返回一个新的数组。
arr.map(function(value,index,array){
console.log(value);
console.log(index);
console.log(array);
});
map 方法不会改变原数组,而是返回一个新数组 回调函数必须包含 return 语句,否则新数组中的元素都会是 undefined