一、對象:
1.對象創建:
(1) var obj={};
(2) var obj= new Object(); obj.name="Wang",obj.age=12
(3) Object.create({});
2.對象訪問:
(1) obj.a;
(2) obj[a]; //a可以是相同的字符串,和數組;
3.對象方法:
(1) obj.hasOwnPrototype("prop"); 判斷對象是否為自身,返回true;如為繼承屬性,false;
(2) obj instanceof object; 實例obj在不在Object構造函數中true/false;
二、數組:
1.數組創建:
(1) var arr=[];
(2) var arr=new Array(1,2,3);
注:var arr=new Array(10); //10表示長度;
var arr=[10.2]; //10.2表示第一位;
2.數組方法:
1.改變原來數組:
(1) .push(); 加入到數組最后。
(2) .pop(); 刪除數組最后一位,無法傳傳參。
(3) .unshift(); 加入到數組最前面。
(4) .shift(); 刪除數組最前面。
(5) .reverse(); 逆反數組。
(6) .splice(從第幾位開始,截取多少長度,在切口處插入的數);
(7) .sort(); 排序
注:1.必須寫兩形參;
2.看返回值:1) return<0; a,b
2) return>0; b,a
3) return=0; 不動
例:
.sort(function (a,b) {
return;
});
2.不改變原來數組:
(1) .concat(); 拼接數組
(2) .slice(從該為開始截取,截取到該位)
(3) .toString();
(4) .join(" "); 連接數組內所有值,引號內為連接符號;
(5) .split(" "); 分割數組或者變量值,引號內為分割符號;
3.遍歷數組:forEach();
用法:array.forEach(function(currentValue, index, arr) { }, thisValue)
(1) currentValue:必需。當前元素
(2) index:可選。當前元素的索引值。
(3) arr可選。當前元素所屬的數組對象。
(4) thisValue:可選。傳遞給函數的值一般用 "this" 值;
如果這個參數為空, "undefined" 會傳遞給 "this" 值;
注:不能遍歷偽數組(類數組);
4.遍歷數組:map();
用法:array.forEach(function(currentValue, index, arr) { }, thisValue)
(1) currentValue:必需。當前元素
(2) index:可選。當前元素的索引值。
(3) arr可選。當前元素所屬的數組對象。
(4) thisValue:可選。傳遞給函數的值一般用 "this" 值;
如果這個參數為空, "undefined" 會傳遞給 "this" 值;
注:不能遍歷偽數組(類數組);
5.類數組:
//屬性要為索引(數字)屬性;
//必須有length屬性,最好加上push;
var obj={
"0":"a",
"1":"b",
"2":"c",
"length":3,
"push":Array.prototype.push,
"splice".Array.prototype.splice
}
三、識別數組[]和對象{}:
(1) obj.constructor:
var a=[];
var b={};
a.constructor; //Array()
b.constructor; //Object()
(2) obj instanceof object:
var a=[];
var b={};
a instanceof Array; //true
b instanceof Array; //false
(3) Object.prototype.toString.call( [] ); //"[object Array]"
Object.prototype.toString.call( {} ); //"[object Object]"