數組也是一個對象,它和普通的對象同樣,也是用來存儲一些值的,不一樣的是普通對象是使用字符串做爲屬性名的,而數組使用數字做爲索引來操做元素
數組的存儲性能比普通對象好,再開發中咱們常常使用數組來存儲一些數據
索引就是從0開始的整數數組
建立數組瀏覽器
1 |
var arr = new Array(); |
向數組中添加元素,數組中的元素能夠是任何數據類型(包括對象,函數,數組)
語法:數組對象[索引] = 值;app
1 |
arr[0] = 123; |
建立數組時直接添加元素
語法:函數
1 |
var arr = [元素1,元素2....元素N]; |
例子:性能
1 |
var arr = [123,"hello",true,null]; |
讀取數組中的元素ui
語法:數組[索引],若是讀取不存在的索引,他不會報錯而是返回undefinedthis
使用length屬性來獲取和設置數組的長度
spa
獲取長度:code
數組對象.length
length獲取到的是數組的最大索引+1
對於連續的數組,length獲取到的就是數組中元素的個數對象
修改數組的長度
數組.length = 新長度
若是修改後的length大於原長度,則多出的部分會空出來
若是修改後的length小於原長度,則原數組中多出的元素會被刪除
向數組的最後添加元素
數組[數組.length] = 值;
本身去文檔的數組對象中查看
遍歷數組就是將數組中元素都獲取到
通常狀況咱們都是使用for循環來遍歷數組
1 |
for(var i=0 ; i<數組.length ; i++){ |
使用forEach()方法來遍歷數組(更爲方便)
forEach方法須要一個函數做爲參數,像這種由咱們建立不禁咱們調用的函數,稱爲回調函數。
數組中有幾個元素,該回調函數就會被調用幾回,
每次調用時,都會將遍歷到的信息以實參的形式傳遞進來,
咱們能夠定義形參來獲取這些信息。
value:正在遍歷的元素
index:正在遍歷元素的索引
obj:被遍歷對象
詳見文檔
這兩個方法都是函數對象的方法,須要經過函數對象來調用
當對函數調用call()和apply()都會調用函數執行
在調用call()和apply()時能夠將一個對象指定爲第一個參數,此時這個對象將會成爲函數執行時的this
call()方法能夠將實參在對象以後依次傳遞call(boj, 1, 2)
apply()方法須要將實參封裝到一個數組中統一傳遞
- 使用後改變了this的值,我的認爲這樣全部方法就能夠隨便調用了,再也不拘泥於一個對象。
this的不一樣的狀況:
1.它所在函數以函數的形式調用時,this是window
2.它所在函數以方法的形式調用時,this就是調用方法的對象
3.它所在函數以構造函數的形式調用時,this就是新建立的對象
4.它所在函數以使用call和apply方法的形式調用時,this就是指定的那個對象
在調用函數時,瀏覽器每次都會傳遞兩個隱含的參數:
1.函數的上下文對象 this
2.函數封裝的對象 arguments
arguments是一個類數組對象,它也能夠經過索引來操做數據,也能夠獲取長度
在調用函數時,咱們所傳遞的實參都會在arguments中保存
arguments.length能夠用來獲取實參的長度
咱們即便不定義形參,也能夠經過arguments來使用實參,只不過比較麻煩
arguments[0] 表示第一個實參
arguments[1] 表示第二個實參
它裏面有一個屬性叫作callee,這個屬性對應一個函數對象,就是當前正在指向的函數對象
學識淺薄,若有錯誤,懇請斧正,在下不勝感激。