Pull to refresh

Comments 13

Ммм… А как насчёт производительности?
UFO just landed and posted this here
Мне кажется, аналогичных статей на хабре уже было штук пятьдесят.
не используйте цикл for

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

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


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

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


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

Скажите, какой движок научился оптимизировать 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 — тоже оттуда, для унификации кода. Возможно,
Sign up to leave a comment.