Разница между foreach и итерацией массива с помощью обычной конструкции for заключается в следующих особенностях:
- foreach предоставляет доступ только для чтения ко всем элементам итерируемого объекта, начиная с первого. 1 Цикл может быть прерван по условию операторами break и return либо его итерация пропущена оператором continue. 1 Также цикл позволяет изменять доступные внешние объекты в пределах области видимости. 1
- for более гибок. 1 Он позволяет изменять значения итерируемого объекта, пропускать элементы, начинать с конца к началу, начинать с произвольного индекса и заканчивать произвольным индексом, пройдя в одну сторону, возвращаться обратно. 1
Кроме того, метод forEach() в отличие от цикла for уменьшает вычислительные затраты и более чётко передаёт назначение кода. 4 Функция обратного вызова выполняется для каждого элемента массива. 4