摘要:遍歷方法小結(jié)常用的遍歷方法遍歷對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果遍歷大家都熟悉,所以重點(diǎn)講一下與的區(qū)別相同點(diǎn)回調(diào)函數(shù)參數(shù)相同,都自帶三個(gè)屬性均不會(huì)修改原數(shù)組第二參數(shù)的
遍歷方法小結(jié) 常用的遍歷方法
for 遍歷
forEach(對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù))
map(創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果)
for 遍歷大家都熟悉,所以重點(diǎn)講一下forEach 與 map 的區(qū)別
相同點(diǎn):
回調(diào)函數(shù)參數(shù)相同,都自帶三個(gè)屬性:item / index / array
均不會(huì)修改原數(shù)組
第二參數(shù)this的指向均指向window(可是使用箭頭函數(shù)進(jìn)行修改)
只能遍歷數(shù)組
都不能使用循環(huán)跳出語(yǔ)句 break & continue
不同點(diǎn):
forEach
返回值為undefined
map
返回值為一個(gè)新的數(shù)組
可以鏈?zhǔn)秸{(diào)用
// 鏈?zhǔn)秸{(diào)用 var str = "abcde"; // 使用call在字符類(lèi)型中使用map方法 Array.prototype.map.call(str, function(x) { return x; }).reverse().join(""); // edcba其他遍歷方法
filter (創(chuàng)建一個(gè)新數(shù)組, 其包含通過(guò)所提供函數(shù)實(shí)現(xiàn)的測(cè)試的所有元素)
find (返回?cái)?shù)組中滿(mǎn)足提供的測(cè)試函數(shù)的第一個(gè)元素的值。否則返回 undefined)
every (測(cè)試數(shù)組的所有元素是否都通過(guò)了指定函數(shù)的測(cè)試)
some (測(cè)試是否至少有一個(gè)元素通過(guò)由提供的函數(shù)實(shí)現(xiàn)的測(cè)試)
【Attention】ES5 中的for...in 遍歷
filter 將遍歷所有的元素
find & some & every 屬于「條件中斷」遍歷(即當(dāng)元素滿(mǎn)足某一條件是返回boolean)
四個(gè)方法都不會(huì)對(duì)原數(shù)組進(jìn)行修改
常用于對(duì)象key值的遍歷
ES6 引入的遍歷方法
[ 前置知識(shí):for...of 可對(duì)具有iterator接口的數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷 ]
原生具有iterator接口的數(shù)據(jù)結(jié)構(gòu)如下:
Array
Set
Map
String
TypedArray
NodeList 對(duì)象
函數(shù)的arguments 對(duì)象
常用來(lái)遍歷對(duì)象、數(shù)組、set、map結(jié)構(gòu)
【番外】改變?cè)瓟?shù)組的方法
pop、push、reverse、shift、sort、splice、unshift
不會(huì)改變?cè)瓟?shù)組的方法
concat、join、slice、toString、toLocaleString、indexOf、lastIndexOf
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102685.html
摘要:本文已同步到中常見(jiàn)的設(shè)計(jì)模式如果感覺(jué)寫(xiě)的還可以,就給個(gè)小星星吧,歡迎和收藏。本文中關(guān)于各種設(shè)計(jì)模式定義都是引用書(shū)中的,部分引用自百度百科已標(biāo)出。下面把我整理出的常用設(shè)計(jì)模式按類(lèi)型做個(gè)表格整理。 本文已同步到Github JavaScript中常見(jiàn)的設(shè)計(jì)模式,如果感覺(jué)寫(xiě)的還可以,就給個(gè)小星星吧,歡迎star和收藏。 最近拜讀了曾探大神的《JavaScript設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐》,真是醍醐...
摘要:最近在全力整理高性能的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 最近在全力整理《高性能JavaScript》的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 前端開(kāi)發(fā)文檔 高性能JavaScript 第1章:加載和執(zhí)行 腳本位置 阻止腳本 無(wú)阻塞的腳本 延遲的腳本 動(dòng)態(tài)腳本元素 XMLHTTPRequest腳本注入 推薦的無(wú)阻塞模式...
摘要:高性能小結(jié)文章轉(zhuǎn)載于我的博客最近看完了動(dòng)物叢書(shū)的高性能,覺(jué)得那本書(shū)的小結(jié)部分寫(xiě)得非常不錯(cuò),簡(jiǎn)潔輕快易懂概括性很強(qiáng)。由于局部變量存在于作用域鏈的起始位置,因此訪(fǎng)問(wèn)局部變量比訪(fǎng)問(wèn)跨作用域變量更快。 高性能javascript小結(jié) 文章轉(zhuǎn)載于我的CSDN博客:http://blog.csdn.net/hello_world_20/article/details/46793317 最近看完了動(dòng)...
摘要:目錄導(dǎo)語(yǔ)對(duì)象對(duì)象小結(jié)導(dǎo)語(yǔ)本系列文章將重點(diǎn)講解提供的原生庫(kù)標(biāo)準(zhǔn)庫(kù),只要在支持語(yǔ)言的平臺(tái),標(biāo)準(zhǔn)庫(kù)中的提供的對(duì)象的屬性和方法都能使用對(duì)象對(duì)象的理解講的標(biāo)準(zhǔn)庫(kù),首先要從對(duì)象談起,因?yàn)橹蟮乃袑?duì)象都可以看做是對(duì)象構(gòu)造出來(lái)的因此,對(duì)象可以看做是一個(gè)構(gòu) 目錄 導(dǎo)語(yǔ) 1. Object對(duì)象 2. Array對(duì)象 3. 小結(jié) 導(dǎo)語(yǔ) 本系列文章將重點(diǎn)講解JavaScript提供的原生庫(kù)——標(biāo)準(zhǔn)庫(kù),只要...
摘要:性能訪(fǎng)問(wèn)字面量和局部變量的速度是最快的,訪(fǎng)問(wèn)數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫(xiě)速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪(fǎng)問(wèn)局部變量。 缺陷 這本書(shū)是2010年出版的,這本書(shū)談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書(shū)里面還有一些內(nèi)容考慮IE6、7、8的東...
閱讀 1422·2021-10-08 10:04
閱讀 744·2021-09-07 09:58
閱讀 2924·2019-08-30 15:55
閱讀 2475·2019-08-29 17:21
閱讀 2177·2019-08-28 18:04
閱讀 3085·2019-08-28 17:57
閱讀 730·2019-08-26 11:46
閱讀 2264·2019-08-23 17:20