JS中的數組: 1.數組的概念: 數組是在記憶體中連續存儲的多個有序元素的結構,元素的順序稱為下標,通過下標查找對應元素 2.數組的聲明: ①通過字面量聲明var arr1 = [,,,,] JS中同一數組可以儲存多種不同的數據類型(但,同一數組一般只用於存放同種數據類型) 例如var arr1 = ...
JS中的數組:
1.數組的概念:
數組是在記憶體中連續存儲的多個有序元素的結構,元素的順序稱為下標,通過下標查找對應元素
2.數組的聲明:
①通過字面量聲明var arr1 = [,,,,]
JS中同一數組可以儲存多種不同的數據類型(但,同一數組一般只用於存放同種數據類型)
例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]];
②通過new關鍵字聲明:var arr2 = new Array(參數);
>>>參數可以為:
空:表示聲明一個沒有長度的數組
數組length:聲明一個指定長度的數組,但是數組的長度可變可追加
數組預設的N個值:new Array(1,"2",true);相當於[1,"2",true];
3.數組中元素的讀寫/增刪:
①讀寫:通過下標來訪問元素,例如arr[2]
②增刪:delete arr[n];刪除數組的第n+1個值,但數組長度不變,對應位置值為Underfined
arr.push(值); 數組最後增加一個值,相當於arr3[arr3.length] = 7
arr.unshift(值); 數組的第0位插入一個值,其餘位數順延
arr.pop();刪除數組最後一位,與delete值不同的是,pop執行後數組長度也會減少一個;相當於arr3.length-=1;
arr.shift();刪除數組第0位,長度也會減一
4.數組中其他常用方法:
①join("分隔符");將數組用指定分隔符分隔。連接為字元串。參數為空時,預設用逗號分隔;
②concat();將數組與多個數組的值連接為新的數組(原數組不被改變)
③push():數組最後增加一個數;
unshift():數組開始增加一個數【返回數組新的長度】
pop():刪除數組最後一個;
shift():刪除數組第一個【返回被刪除的值】
④reverse():數組翻轉,逆序排列【原數組被改變】
⑤slice(begin,end):[原數組不會被改變]截取數組中的某一部分成為新數組。
⑥sort(function):[原數組會被改變]對數組進行排序;
⑦indexOf(value,index):返回數組中第一個value值對應的索引位置,若未找到,返回-1
lastIndexOf(value,index):返回最後一個value值對應的下標位置,若未找到,返回-1
5.引用數據類型:(數組/對象)賦值時,是將原數據的地址賦給新變數。兩個變數,實際上操作的是同一份數據,所以修改其中一個變數另一個跟著變化。
基本數據類型:賦值時,是將原變數的值,賦值給新的變數。兩個變數,屬於不同的記憶體空間,修改其中一個,互不幹擾。
【JS中的內置對象分為以下幾類】:
boolean類
Number類
字元串string
date類
【自定義對象】
1.基本概念:
①對象:對象是包含一系列無序屬性和方法的集合
②鍵值對:對象中的數據是以鍵值對的形式存在的,以鍵取值
③屬性:描述對象特征的一系列變數、【對象中的變數】
④方法:描述對象行為的一系列方法、【對象中的函數】
2.對象的聲明:
①字面量聲明: var obj = {
key1:value1, // 屬性
key2:value2,
func:function(){} // 方法
}
對象中的key,可以是任何數據類型。但一般用普通變數名(不需要"")即可
對象中的value,可以是任何數據類型。但字元串必須用""包裹
多組鍵值對之間用英文逗號","分隔,鍵值對的鍵與值之間用英文冒號":"分隔
②new關鍵字聲明
var lisi = new Object();
lisi.name = "李四";
lisi.say = function(){
console.log("我是:"+this.name);
}
3.對象中屬性和方法的讀寫:
① .運算符: 對象內部:this.屬性名 this.方法名()
對象外部:對象名.屬性名 對象名.方法名()
② 通過["key"]調用,對象名["屬性名"] 對象名["方法名"]()
如果key中包含特殊字元,則無法使用第①種方式,必須使用第②種
對象中,直接寫變數名,預設為調用全局變數。如需調用對象自身屬性,則需要通過this關鍵字
③ 刪除對象的屬性方法:delete 對象名.屬性名(方法名)