🚅 Какой цикл будет самым эффективным для вашего следующего проекта?

Если вы хоть раз писали код, могу поспорить, что вы использовали циклы. Одной из самых фундаментальных концепций программирования является цикл, потому что мы обычно хотим повторять определенный набор действий несколько раз. Но… Знаете ли вы, какой цикл быстрее?

В этой статье мы сравним три часто используемых метода циклов в JavaScript: for, forEach и for of.

Не думайте, что это абсолютная правда, это будет просто простой тест, вызванный любопытством юниора. Есть гораздо лучшие и более реалистичные способы тестирования. В этом случае я буду использовать методы performance.now() и простую функцию для обратного вызова.

Вы готовы увидеть конкурс?

Для

Классика, о которой вы писали миллионы раз.

for (expression 1; expression 2; expression 3) {
  // code block to be executed
}

для каждого

Ваш любимый метод массива.

arr.forEach(function callback(currentValue, index, array) {
    // tu iterador
}[, thisArg]);

Для … из

Тот, который имеет значение, когда другие терпят неудачу.

for (variable of iterable) {
  statement
}



Выводы

После тестирования этих трех разных петель мы можем заявить, что подиум…

🥇 Для 🥈 для Каждого 🥉 Для … из

Теперь возможно, что вы спрашиваете себя, почему, давайте найдем ответ.

For работает быстрее, чем forEach или for… of, потому что принимает только три разных выражения: нужно объявить переменную, вычислить выражение и выполнить простую операцию с суммированием. На самом деле единственными накладными расходами в этом цикле являются проверка и приращение, очень недорогие операции.

С другой стороны, у нас есть forEach. Внутри forEach должна быть создана функция обратного вызова, а затем этот обратный вызов должен быть вызван с новым контекстом выполнения. Это причина второго места на этом подиуме. Настройка и вызов обратного вызова — более затратные операции, которые только увеличивают или уменьшают и проверяют условие.

И последнее, но не менее важное: у нас есть for…of. For…of в моем тесте был немного медленнее, чем forEach, и кажется, что этот метод плохо масштабируется с большими наборами данных. В этом случае ему нужно только объявить и инициализировать тот же тип объекта массива, который мы итерируем. В зависимости от типа и объема данных это может значительно снизить производительность нашей программы.

Конечно, эта статья не является абсолютной правдой. Есть много лучших библиотек и способов улучшить тесты производительности. В данном случае это был лишь небольшой тест, вызванный любопытством, чтобы узнать больше об этом мощном языке, которым является JavaScript.



Вы думаете о покупке Среднего членства? Если вы хотите получить доступ к лучшему контенту на Medium, подумайте об использовании моей реферальной ссылки. Та же цена, и вы поддержите мою работу.

Выводы 👋

Спасибо! Большое спасибо за прочтение статьи. Если вы хотите узнать больше о технологиях и разработках, не забудьте подписаться на меня. Мне бы очень хотелось узнать ваше мнение об этом, так что, чувак, не пишите это в комментариях, я вас прочитаю.

Если эта статья помогла вам вспомнить, вы можете похлопать ей и поделиться ею со своими товарищами.

Об авторе🤓

Привет! Рад встрече! Я Хесус Лагарес. В настоящее время я работаю разработчиком программного обеспечения для серверной части и получаю степень по компьютерным наукам в Университете Кадиса.

Две мои страсти — технологии и общение, поэтому я использую любую возможность, чтобы поговорить или написать о технологиях. Я люблю превращать сложные понятия в простые, понятные каждому.

Хотите подключиться? 📲

📸 Инстаграм | 💼LinkedIn |📹 Youtube |🐦Twitter

📩 [email protected]

Спасибо! ❣️

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Повысьте узнаваемость и признание вашего технического стартапа с помощью Circuit.