區(qū)別:1、for通過(guò)索引來(lái)循環(huán)遍歷每一個(gè)數(shù)據(jù)元素,而forEach通過(guò)JS底層程序來(lái)循環(huán)遍歷數(shù)組的數(shù)據(jù)元素;2、for可以通過(guò)break關(guān)鍵詞來(lái)終止循環(huán)的執(zhí)行,而forEach不可以;3、for可以通過(guò)控制循環(huán)變量的數(shù)值來(lái)控制循環(huán)的執(zhí)行,而forEach不行;4、for在循環(huán)外可以調(diào)用循環(huán)變量,而forEach在循環(huán)外不能調(diào)用循環(huán)變量;5、for的執(zhí)行效率要高于forEach。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
1、for循環(huán) 和 forEach的區(qū)別
(1) for循環(huán)是通過(guò) 生成 數(shù)組的索引下標(biāo) 循環(huán)遍歷數(shù)組的每一個(gè)數(shù)據(jù)元素

forEach是 JavaScript定義的數(shù)組的函數(shù)方法 通過(guò) JavaScript底層程序 循環(huán)遍歷數(shù)組的數(shù)據(jù)元素

(2) for循環(huán) 可以 通過(guò) break 關(guān)鍵詞 來(lái)終止循環(huán)的執(zhí)行

forEach 中 調(diào)用執(zhí)行 break 程序會(huì)報(bào)錯(cuò)

(3) for循環(huán)可以通過(guò) 控制循環(huán)變量 的數(shù)值 控制 對(duì)于循環(huán)的執(zhí)行

forEach循環(huán) 中 參數(shù)存儲(chǔ)數(shù)據(jù)都是底層程序進(jìn)行賦值 無(wú)法進(jìn)行賦值修改等操作

(4) for循環(huán) 在循環(huán)外 可以調(diào)用循環(huán)變量

forEach循環(huán) 在循環(huán)外 不能調(diào)用 循環(huán)變量

(5) for循環(huán)的執(zhí)行效率 要 高于 forEach循環(huán)
2、for循環(huán) 和 forEach循環(huán)的對(duì)比
既然 for循環(huán) 和 forEach循環(huán) 兩個(gè)循環(huán)語(yǔ)法 看上去 for循環(huán) 更加方便 更加合理 為什么還要有 for循環(huán) 和 forEach 兩個(gè)循環(huán)呢?
首先 for循環(huán)的執(zhí)行 只能是通過(guò)循環(huán)生成索引下標(biāo)數(shù)值 然后通過(guò)索引下標(biāo) 操作 數(shù)組的數(shù)據(jù)元素
但是 forEach 可以通過(guò)設(shè)定參數(shù) 來(lái) 存儲(chǔ) 索引下標(biāo) 數(shù)據(jù)數(shù)值 這樣在操作上更加的便利

其次 for循環(huán) 生成 定義循環(huán)變量 可以 使用 var 或者 let 等關(guān)鍵詞 這樣可以根據(jù)循環(huán)執(zhí)行的需要 設(shè)定 聲明變量的關(guān)鍵詞
但是 forEach 底層使用的是 let 關(guān)鍵詞聲明變量 并且只能是這個(gè)關(guān)鍵詞聲明變量 是不能修改的

實(shí)際項(xiàng)目中我們可以根據(jù)自己項(xiàng)目的實(shí)際需求,判斷我們需要使用的是for循環(huán)還是forEach循環(huán)。好了,本文就分享到這里了。
如果想要獲取Web前端學(xué)習(xí)資料、源碼的同學(xué)們,請(qǐng)用手機(jī)點(diǎn)擊下方鏈接,獲取海量資料包喲!