《javascript進階程式設計》讀書筆記(四)參考型別,參考型別
第五章:參考型別
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()