第五章:引用类型
Object类型
创建object实例的两种方式:
1.new方式
var person = new Object();
person.name = “haozk”;
person.age = 24;
2.对象字面量表示法
var person = {
name:”haozk”,
age:24
}
也可以将属性用字符串包围:
var person = {
“name”:”haozk”,
“age”:24
}
访问object实例的属性,也有两种方式:
1.alert(person[“name”]) //方括号方式(可以通过变量来访问属性,属性也可以为关键字或者保留字)
2.alert(person.name) //点方式
Array类型
不同于其他编程语言的array,js中的array具有stringbuffer的动态调整大小,又数据项类型可以不相同。
创建也有两种方式,new与数组字面量方式:
var colors = new Array();
var colors = new Array(3);
var colors = new Array(“red”,”blue”,”green”);
var colors = [];
var colors = [“red”,”blue”,”green”];
数组的length属性不是只读的,可以改变:
colors.length = 2;
alert(colors[2]); //undefined
colors[colors.length] = ‘black’; //在位置2,添加一种颜色,现在的length为3.
检测数组:(重要)
Array.isArray()方法
if(Array.isArray(value)){
//对数组的相关操作
}
转换方法:
调用数组的toLocaleString()、toString()、valueOf(),返回结果都是每项以逗号分隔的字符串。
alert()接受字符串参数,会在后台调用toString()方法,所以可以直接alert(colors).
调用join()方法,可以接受参数,作为分隔的字符串,如:
alert(colors.join[“||”]) //red||blue||green
栈方法:push(),pop()
队列方法:push(),shift(),unshift(能在数组前端添加任意个项并返回新数组的长度)
重排序方法:
反转:reverse()
升序:sort() (注意:是按字符串排序而不是数值)
function compare(value1,value2){ //升序 (通用)
if(value1<value2){
return -1; //若降序,return 1;
}else if(value1>value){
return 1; //若降序,return -1;
}else{
return 0;
}
}
var values = [0,1,5,10,15];
values.sort(compare);
alert(values);
操作方法:contact(),slice(),splice()
位置方法:indexOf(),lastIndexOf()
迭代方法:every(),filter(),forEach(),map(),some()
缩小方法:reduce(),reduceRight()