# Форматер JavaScript

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

## Часто задаваемые вопросы

### Как работает форматер JavaScript?

Инструмент разбирает код в синтаксическое дерево как ES-модуль, а затем выводит это дерево в единообразном стиле. Поскольку код разбирается, а не обрабатывается набором текстовых правил, структура результата всегда соответствует исходному коду.

### Какой стиль используется для результата?

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

### Можно ли изменить отступы или другие настройки?

Нет, у форматера нет настроек. Любой ввод форматируется одинаково, поэтому результат предсказуем при отправке другим пользователям.

### Что произойдет, если в моем коде есть ошибка синтаксиса?

Инструмент остановится и покажет сообщение парсера, например Unexpected: с указанием проблемного токена. Исправьте указанную проблему и запустите форматер снова.

### Комментарии сохраняются?

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

### Поддерживает ли он современный JavaScript?

Да, парсер распознает современный синтаксис, например import и export, стрелочные функции, классы, async и await, деструктуризацию, spread, optional chaining, nullish coalescing и шаблонные строки. Длинные литералы объектов, которые не помещаются в одну строку, разбиваются так, чтобы каждое свойство занимало отдельную строку.

### Можно ли форматировать минифицированный код?

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

### Изменится ли поведение моего кода после форматирования?

Нет, форматирование меняет только пробелы, разрывы строк и завершители инструкций. Добавляются только точки с запятой — именно так JavaScript и без того разбирает код.

### Почему результат заключен в блок кода с ограждением javascript?

Результат возвращается в виде блока кода Markdown, который начинается с ограждения javascript, поэтому при вставке в Markdown он отображается с подсветкой. Чтобы получить исходный код без оформления, скопируйте строки между ограждениями.

### А как насчет JSX, TypeScript или Flow?

Эта страница предназначена для обычного JavaScript. Для компонентов React используйте форматтер JSX, а для типизированного кода — форматтер TypeScript или Flow, поскольку аннотации типов не входят в стандартный JavaScript.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
