Отступы, пробелы и переносы
Для правильного форматирования используйте файл .editorconfig в вашем редакторе.
Для отступов используются два пробела. Знак табуляции не используется.
При переносах в продолжении строки используется четыре пробела
Запрещено одновременное использование табов и пробелов для отступов
Выражения должны заканчиваться точками с запятой
Для отступов ключевых слов, операторов и т. д. используется не более одного пробела
var name = 1;
var longerName = 2;
var name = 1;
var longerName = 2;
Открывающие скобки блоков кода находятся на одной строке с оператором, который их использует:
if (condition)
{
// code
}
if (condition) {
// code
}
В однострочных блоках кода, код отделен от открывающей и закрывающей скобки пробелом
В однострочных массивах скобки не отделяются пробелами, первое значение идет непосредственно после открывающей скобки, а закрывающая скобка идет непосредственно после последнего значения массива
После запятой всегда должен ставиться пробел, если запятая не в конце строки
Запрещено переносить запятую на новую строку при объявлении массивов и объектов. Запрещено использовать запятую в конце списков, объектов или перечислений параметров функции
Файл должен заканчиваться пустой строкой
Строка не должна заканчиваться пробелами
В однострочных объектах и при деструктуризации фигурные скобки не отделяются пробелами от содержимого
var foo = { a: 1 };
var foo = {a: 1};
const { a, b } = someObject;
const {a, b} = someObject;
В коде не используются совместно табы и пробелы
Смысловые блоки кода отделяются друг от друга не более чем двумя пустыми строками
В качестве символа переноса строки используется стандартный символ, который используется в системе
При объявлении вычисляемых ключей в объектах с помощью синтаксиса ES2016 в квадратных скобках не используются пробелы
Оператор вызова функции () не отделяется пробелами от названия функции
В объектах после объявления ключа не ставится пробел. После двоеточия, которое отделяет в объектах ключ от значения может стоять только один пробел, выравнивать несколько значений при объявлении многострочного объекта запрещено
Ключевые слова отделяются пробелами. Правило касается всех блоков, которые не оговорены отдельно в других правилах. В частности ключевые слова должны отделяться пробелами для условных операторов, циклов, операторов множественного выбора, блоков try..catch, объявлений классов и т. д.
В блоках кода первая и последняя строка не должны быть пустыми (код не отбивается от начала блока кода)
После двоеточий и точек с запятыми ставятся пробелы. Перед ними — не ставятся
Перед скобками начинающими новый блок кода должен ставиться пробел
При объявлении анонимных функций, скобки с параметрами отделяются пробелом от ключевого слова function. Если функция именована, перед названием ставится пробел, после — нет
В комментариях текст отбивается пробелом от начала комментария
При создании генераторов, звездочка идёт сразу после ключевого слова function без пробелов
В spread-операторе точки не отделяются от названия коллекции
Звездочка после ключевого слова yield не отбивается пробелом. После звездочки пробел ставится всегда