根據題主的問題,在Node里寫了一個測試片段,以直觀的方式先展現一下for和for...in循環的效率區別
這里主要用一個簡單的數組來測試
先試試數組是50的情況下測試成績:for比for...in慢
數組增加到5000,成績:for比for...in快
數組增加到500000,成績:for比for...in快得多
數組增加到50000000,成績:for比for...in快得太多太多
從簡單的數組應用來看,我們可以得出一個簡要的結論:
for適合大數組使用
for...in適合數組較小時使用
深入一點
for...in可以用來遍歷對象,數組也是一個對象,并且是一個內建的Array對象實例
for一般只適合遍歷數組
總結:
應不同的場景使用不同的方法,獲取最優的方案
附上代碼,題主有興趣的話可以自己試試
//測試for和for...in的區別vartotalCount=50;vararrs=[];for(varx=0;x<totalCount;x++){arrs[x]=x;}console.time('for');for(vari=0;i<arrs.length;i++){arrs[i];}console.timeEnd('for');console.log("==================");console.time('for');for(varxinarrs){x;}console.timeEnd('for');