JS基礎學習第六天

數組(Array)

數組也是一個對象,它和普通的對象同樣,也是用來存儲一些值的,不一樣的是普通對象是使用字符串做爲屬性名的,而數組使用數字做爲索引來操做元素
數組的存儲性能比普通對象好,再開發中咱們常常使用數組來存儲一些數據
索引就是從0開始的整數數組

數組的操做:

建立數組瀏覽器

1
2
var arr = new Array(); 
var arr = [];

 

向數組中添加元素,數組中的元素能夠是任何數據類型(包括對象,函數,數組)
語法:數組對象[索引] = 值;app

1
2
arr[0] = 123; 
arr[1] = "hello";

 

建立數組時直接添加元素
語法:函數

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
2
3
for(var i=0 ; i<數組.length ; i++){ 
//數組[i]
}

 

使用forEach()方法來遍歷數組(更爲方便)

forEach方法須要一個函數做爲參數,像這種由咱們建立不禁咱們調用的函數,稱爲回調函數。

數組中有幾個元素,該回調函數就會被調用幾回,
每次調用時,都會將遍歷到的信息以實參的形式傳遞進來,
咱們能夠定義形參來獲取這些信息。
value:正在遍歷的元素
index:正在遍歷元素的索引
obj:被遍歷對象

詳見文檔

call()和apply()

這兩個方法都是函數對象的方法,須要經過函數對象來調用
當對函數調用call()和apply()都會調用函數執行
在調用call()和apply()時能夠將一個對象指定爲第一個參數,此時這個對象將會成爲函數執行時的this
call()方法能夠將實參在對象以後依次傳遞call(boj, 1, 2)
apply()方法須要將實參封裝到一個數組中統一傳遞 

- 使用後改變了this的值,我的認爲這樣全部方法就能夠隨便調用了,再也不拘泥於一個對象。

this的不一樣的狀況:

1.它所在函數以函數的形式調用時,this是window
2.它所在函數以方法的形式調用時,this就是調用方法的對象
3.它所在函數以構造函數的形式調用時,this就是新建立的對象
4.它所在函數以使用call和apply方法的形式調用時,this就是指定的那個對象

arguments

在調用函數時,瀏覽器每次都會傳遞兩個隱含的參數:
1.函數的上下文對象 this
2.函數封裝的對象 arguments
arguments是一個類數組對象,它也能夠經過索引來操做數據,也能夠獲取長度
在調用函數時,咱們所傳遞的實參都會在arguments中保存
arguments.length能夠用來獲取實參的長度
咱們即便不定義形參,也能夠經過arguments來使用實參,只不過比較麻煩
arguments[0] 表示第一個實參
arguments[1] 表示第二個實參
它裏面有一個屬性叫作callee,這個屬性對應一個函數對象,就是當前正在指向的函數對象

 

學識淺薄,若有錯誤,懇請斧正,在下不勝感激。

相關文章
相關標籤/搜索