Tôi tự hỏi: Có sự khác biệt đáng kể nào giữa vòng lặp forEach
và for
trong JavaScript hay không.Sự khác biệt giữa forEach và vòng lặp trong javascript
Hãy xem xét ví dụ sau:
var myArray = [1,2,3,4];
myArray.forEach(function(value) {
console.log(value);
});
for (var i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
}
Dưới đây là một phần của nghiên cứu của tôi:
- Performance: Theo JsPerf: forEach rất ít chậm hơn so với vòng lặp for.
- Tính khả dụng: Không có cách nào chúng tôi có thể ngắt/trả lại từ cuộc gọi lại trong trường hợp vòng lặp forEach.
Ví dụ: Bạn muốn tìm hiểu xem một số có phải là số nguyên tố hay không. Tôi nghĩ rằng việc sử dụng cho vòng lặp là dễ dàng hơn nhiều so với sử dụng vòng lặp forEach để làm điều này.
- Dễ đọc: Sử dụng cho vòng lặp giúp mã dễ đọc hơn so với việc có trong mã.
- Khả năng tương thích của trình duyệt: forEach không được hỗ trợ trong IE < 9 Vì vậy, giới thiệu một số shim trong mã của chúng tôi.
Câu hỏi của tôi là:
- những ưu điểm của foreach là gì so với cho vòng lặp?
- Trong trường hợp nào, forEach thích hợp hơn.
- Tại sao thậm chí nó lại được đưa vào JavaScript? Tại sao nó lại cần thiết?
Cũng về mặt kỹ thuật, bạn có thể thoát ra khỏi một cho mỗi bằng cách ném một lỗi .... 1) Ý kiến 2) Ý kiến 3) Ý kiến. – epascarello
@ Sirko — Tôi nghĩ bạn có nghĩa là '[1,2,, 3,4]'. Mảng trong nhận xét của bạn có năm thành viên, cả * cho * và * forEach * sẽ truy cập tất cả năm thành viên. Tuy nhiên, nếu một (hoặc nhiều) thành viên không tồn tại (một mảng được gọi là "thưa thớt") thì * forEach * sẽ không truy cập vào các thành viên còn thiếu. – RobG
@RobG Phải. Không thể sửa ngay bây giờ. – Sirko