1. 程式人生 > 其它 >js之for與forEach迴圈的區別

js之for與forEach迴圈的區別

首先,for迴圈在最開始執行迴圈的時候,會建立一個迴圈變數i,之後每次迴圈都是操作這個變數,也就是說它是對一個迴圈變數在重複的賦值,因此 i 在最後只會儲存一個值;而forEach()雖然變數名沒變,但是實際上每次迴圈都會建立一個獨立不同的變數,而儲存的數值自然也是不同的數值,因此相互之間不會影響,如下;

  

  上面程式碼中,我們會發現使用for迴圈給每個p繫結事件時,無法正確的找到對應的p元素,最後顯示的都是最後一個,這就是因為for迴圈是一瞬間執行完的,並且只有一個變數,只會儲存一個值,也就是最後的那個值;而forEach()則可以正確的找到對應的p元素,因為每次迴圈都會建立一個不同的變數去記錄。

  其次,我們知道for迴圈實際上是可以使用break和continue去終止迴圈的,但是forEach不行;

  那我們知道其實foreach相比較於for來說程式碼量其實是少了很多的,也有一些缺陷,那麼我們該如何區分使用更好呢?一般來說,for多數時候都可以使用,當然一般我們需要知道迴圈次數;而forEach更適合於集合物件的遍歷和操作,具體的我們還是需要根據不同的情景區分去使用了。