ES5學習記錄 2

2021-09-29 17:46:42 字數 3232 閱讀 7280

目錄

array:

1.every()

2.some()

3.foreach()

4.filter()

5.map()

6.reduce()

7.reduceright()

8.indexof()

9.lastindexof()

首先我們來定義乙個陣列:

var dataarray = [8, 4, 3, 5, 2, 5, 5];
迭代方法都接受兩個引數,第乙個引數是乙個函式,該函式接受三個引數,1.陣列當前項的值、2.當前項在陣列中的索引、3.陣列物件本身。第二個引數是執行第乙個函式引數的作用域物件。

tips:迭代方法不會改變原陣列。

舉例,如下圖所示:

arr.every(callback, [thisarg]);
callback(item, index, self)
1.every():該方法測試陣列的所有元素是否通過了指定函式的測試。

該方法對陣列中的每乙個元素執行指定函式,如果該函式對每乙個元素都返回true,則返回true。

2.some():該方法測試陣列中的某些元素是否通過了指定函式的測試。

該方法對陣列中的每乙個元素執行指定函式,如果該函式對任何乙個元素返回true,則返回true。

3.foreach():該方法遍歷陣列中所有元素。

tips:該方法沒有返回值

4.filter():該方法對陣列中的每乙個元素執行指定函式,返回值是乙個指定函式執行結果為true的元素所組成的陣列。

tips:判斷,函式支援弱等於(==),不是必須全等於(===)

5.map():該方法對陣列中的每乙個元素執行指定函式,返回每次函式呼叫的結果組成的陣列。

歸併方法都會迭代陣列中的所有元素,然後生產乙個最終返回值。他們都接收兩個引數,第乙個引數是每乙個元素呼叫的函式,函式接受是四個引數分別是1.初始值、2.當前值、3.索引值、4.當前陣列,函式需要返回乙個值,這個值會在下一次迭代中作為初始值。第二個引數是迭代初始值,引數可選,如果預設,初始值為陣列第一元素,從陣列第乙個元素開始疊加,預設引數要比正常傳值少一次運算。

6.reduce():該方法從陣列的第乙個元素開始,逐個遍歷到最後乙個元素。

我們在傳入reduce的函式中列印了prev值,可以看到prev就是陣列每兩項的和。最後我們把結果返回給了result,這是沒設定第二個引數的情況。

設定了第二個引數的例子:

可以看見第乙個prev輸出的結果就是第二個引數的值,設定了這引數就會多執行一次計算。

7.reduceright() 該方法從陣列的最後乙個元素開始,逐個遍歷到最後乙個元素。

使用和reduce方法一樣,只不過遍歷的順序不一樣

索引方法都有兩個引數,第乙個引數是要查詢的元素,第二個引數是查詢起點位置的索引,該引數可選,如果預設或者是格式不正確怒,那麼預設為0。都返回查詢元素在陣列中的位置,如果沒有找到就返回-1。

tips:區別就是indexof()從前往後找,lastindexof()從後往前找。

var dataarray = [8, 4, 3, 5, 2, 5, 5];

console.log(dataarray.indexof(4)); // 1 預設,從第乙個元素開始查詢

console.log(dataarray.indexof(5,'#')); // 3 第二個引數格式不正確,引數預設值為0

console.log(dataarray.indexof(5,5)); // 5 從第7項之後開始查詢

console.log(dataarray.indexof(6)); // -1 沒有找到對應元素,返回-1

var dataarray = [8, 4, 3, 5, 2, 5, 5]; 

console.log(dataarray.lastindexof(4)); // 1 預設, 從末尾第一項開始查詢

console.log(dataarray.lastindexof(5,'#')); // -1 格式不正確,返回-1

console.log(dataarray.lastindexof(5,3)); // 3 從末尾第四項往前查詢

console.log(dataarray.lastindexof(6)); // -1 沒有找到元素,返回-1

第乙個引數與陣列中每乙個元素比較時,會使用全等操作符,要求必須完全相等,否則返回-1。

ES5學習記錄 1

進入嚴格模式只需要使用 use strict 這條語句即可。對於支援嚴格模式的瀏覽器,會在宣告 use strict 語句之後的 都將會在嚴格模式的限制下執行。對於不支援嚴格模式的瀏覽器,這個宣告只是乙個簡單的字串,不會產生任何影響。使用 嚴格模式的宣告必須放在指令碼第一行,否則整個指令碼會以正常模...

Typescript學習記錄 回顧ES5繼承

b類繼承a類的方法 function a name run a.prototype.age 21 a.prototype.coding function coding var a newa aaa a.run a.coding es5的繼承,b繼承a function b name 繼承a原型鏈的拷...

ES5學習總結

window.onload 所有頁面載入完畢時候,再呼叫 window.onresize 編輯視窗時候觸發 onfocus 和 onblur 聚焦和失焦 window.onscroll 滾動視窗觸發 onmouseover 只在剛進入區域時觸發。onmousemove 除了剛進入區域觸發外,在區域內...