Как стать автором
Обновить

Комментарии 13

Ммм… А как насчёт производительности?
НЛО прилетело и опубликовало эту надпись здесь
Мне кажется, аналогичных статей на хабре уже было штук пятьдесят.
не используйте цикл for

Не первый раз слышу, может кто нибудь разъяснить почему?
я так наоборот не вижу смысла использовать метод forEach, кроме случаев когда у нас много переборов и колбэк можно куда то сохранить и вынести.
у обычного фора:
меньше скобок
он быстрее по времени
он дешевле по памяти
можно перебирать не всё а через раз
не до конца
в обратном порядке
Использование методов массивов лучше выражает семантику кода, делает его более самодокументированным. Уместное использование правильных методов, необходимо уточнить.

Лично для меня код с for:


for (const el of elements) {
  // ...
}

Куда более выразительный и самодокументируемый, чем:


elements.forEach(el => {
  // ...
})
for-of — да, несомненно, это крутая штука. С его появлением forEach стал особо не нужен. Я говорил скорее об остальных методах. Когда for-of используется и вместо map, и вместо reduce, и вместо всего — это уже значительно менее идиоматично.
НЛО прилетело и опубликовало эту надпись здесь

Скажите, какой движок научился оптимизировать forEach?
Вот тест, который говорит, что forEach в 10 раз медленнее for и в 5 раз медленнее for…of. Выигрывает он только у for…in, и то быстрее всего в 2 раза.
https://jsperf.com/for-vs-forin-vs-forof-vs-foreach


Скрин теста

image

Не использование for вносит не нужное разнообразие и, соответственно, затрудняет чтение. Вот и весь эффект.

Это из области религии, тут нет однозначных объяснений, просто члены одной секты понимают собратьев без объяснений.

For это не секта, это классика. Ничем себя не скомпрометировавшая.

А вот теперь пошел сленг. Точно такой же как и везде. Образуются молодежные группы. Вносятся искажения в язык. Раньше это было в естественном языке, теперь добралось до программирования. Это то же явление что деревня против деревни, пацаны нашего двора, против соседского.
Я все равно в итоге пришлось использовать lodash, очень он удобный. А раз его использую — то и все эти map, filter — тоже оттуда, для унификации кода. Возможно,
Зарегистрируйтесь на Хабре, чтобы оставить комментарий