Цикл for обычно используется, когда заранее известно количество итераций. Все компоненты цикла (инициализация, условие, инкремент/декремент) сосредоточены в одном месте.
Цикл while используется, когда количество итераций заранее неизвестно и выполнение цикла зависит только от истинности условия. Инициализация выполняется до цикла, а инкремент/декремент или другое изменение переменной условия происходит внутри тела цикла.
Пример for:
javascript
Пример while:
javascript
Ключевое отличие в структуре и типичных сценариях использования. for более компактен для фиксированного числа итераций, while более гибок, когда количество итераций определяется условием.