При подготовке к техническим собеседованиям одним из самых распространенных инструментов, с которым программист может столкнуться для решения множества проблем, является одна из самых вводных концепций в JavaScript — циклы for. Циклы чрезвычайно полезны, когда программист хочет многократно повторить один и тот же блок кода или когда работает с объектами или манипулирует ими в JavaScript, включая массивы и строки. В этой статье будут рассмотрены три различных типа циклов, каждый из которых, вероятно, будет использоваться при решении проблем в обстановке интервью: цикл «для», цикл «для…из» и цикл «для…в».

Для цикла

Цикл for принимает три выражения: объявление переменной, выражение, которое будет оцениваться перед каждой итерацией, и выражение, которое будет оцениваться после каждой итерации. Он имеет следующий синтаксис:

Используя приведенный выше синтаксис, базовый цикл for будет выглядеть примерно так:

Этот код будет выводить в консоль значение «i» на каждой итерации цикла for, начиная с 0 и заканчивая 4. Затем цикл будет увеличивать «i» до 5, и условие во втором выражении больше не будет правда, что разорвало бы петлю.

Для… цикла

Оператор for…of, представленный в ES2015, используется для перебора итерируемых коллекций. Цикл for…of хорошо работает с массивами и строками, которые являются итерируемыми, но не работает с объектами. Он имеет следующий синтаксис:

В качестве базового примера следующий код демонстрирует использование оператора for…of для массива:

Этот код приведет к комплименту для каждого человека в массиве «разработчики» следующим образом:

Оператор for…of также хорошо работает для перебора каждого символа строки, включая пробелы и знаки препинания.

Для… в цикле

Оператор «for…in» используется для перебора «перечисляемых» свойств объекта. Итерация for…in происходит в произвольном порядке, поэтому ее не следует использовать, если что-то должно происходить в определенной последовательности. Этот метод обеспечивает наиболее простой способ циклического перебора ключей и значений объекта.

Цикл for…in можно использовать для массивов и строк, поскольку ключ для значения в массиве или строке будет индексом этого значения. Однако обычно не рекомендуется использовать for…in с массивами и строками, поскольку нельзя гарантировать, что итерация будет происходить последовательно. По этой причине предпочтительнее использовать цикл for…of при работе с массивом или строкой.

Оператор for…in использует следующий синтаксис:

В качестве базового примера, вот как можно использовать оператор for…in для получения значений каждого ключа в объекте:

Вывод

Многие проблемы, представленные на технических собеседованиях (и многие ситуации на любой должности программиста), будут включать в себя некоторую форму итерации, поэтому знание различных методов циклов и понимание того, как их реализовать, будет очень полезным. При переборе «перечисляемых» свойств объекта используйте оператор «for…in». При циклическом просмотре итерируемого объекта, такого как массив или строка, выберите оператор «for…of». При попытке выполнить какой-либо фрагмент кода несколько раз используйте базовый цикл for.

Ресурсы