Правила наименования переменных в JavaScript

Требования к названию

В JavaScript как и в любом другом языке программирования существуют строгие синтаксические правила для именования переменных:

  1. Имя должно начинаться с буквы (a–z, A–Z), символа подчёркивания (_) или знака доллара ($).
    ✅ Разрешено: name, _count, $element
    ❌ Запрещено: 2name, -value, 3dModel

  2. После первого символа можно использовать буквы, цифры (0–9), _ и $.
    ✅ Разрешено: userName1, total_price, API_KEY
    ❌ Запрещено: user-name, email@domain, my variable

  3. Имена чувствительны к регистру — name, Name и NAME — это три разные переменные.

  4. Нельзя использовать зарезервированные слова языка как имена переменных:
    let, const, var, function, if, else, return, class, import, export, null, true, false, this, new, while, for, break, continue, try, catch, finally, throw, switch, case, default, typeof, instanceof, in, of, async, await, yield и другие.
    ❌ Запрещено: let = 5;, function = "test";

  5. Нельзя использовать ключевые слова будущих версий ECMAScript, даже если они пока не используются (например, package, interface, private, protected, public, static).
    ❌ Лучше избегать: class, enum, implements, module, namespace, super

Рекомендации

Хотя JavaScript позволяет многое, следование общепринятым соглашениям делает код понятным, поддерживаемым и профессиональным:

  1. Используйте camelCase для имен переменных и функций.
    ✅ userName, isLoading, getTotalPrice
    ❌ user_name, User Name, usertotalprice

  2. Для констант (которые не меняются) используйте UPPER_SNAKE_CASE.
    ✅ MAX_USERS, API_URL, DEFAULT_TIMEOUT

  3. Выбирайте осмысленные, описательные имена — избегайте аббревиатур и однобуквенных имён, если контекст не очевиден.
    ✅ numberOfItems, currentUser, isFormValid
    ❌ n, x, tmp, data1, arr

  4. Используйте логические имена для булевых переменных — начинайте с is, has, can, should.
    ✅ isVisible, hasPermission, canSubmit, isLoading

  5. Избегайте двойных отрицаний — лучше isDisabled, чем isNotEnabled.

  6. Не используйте $ в начале имени без причины — хотя $ разрешён, он часто используется в библиотеках (например, jQuery) для обозначения объектов DOM. Используйте только если это часть вашей договорённости в проекте (например, const $button = document.querySelector('#btn');).

  7. Следуйте единому стилю в команде — согласуйте стиль именования в проекте (через ESLint, Prettier или внутренний гайдлайн).

  8. Не пишите имена на кириллице — даже если JavaScript это позволяет, это снижает читаемость для международной команды и может вызвать проблемы с инструментами/редакторами.

💡 Рекомендация: «Не жалейте создавать лишнюю переменную» — лучше сделать код более читаемым через понятные имена, чем экономить на количестве строк. Например:

const isEmailValid = validateEmail(userInput); // Читаемо и понятно

вместо

const v = validateEmail(userInput); // Неясно, что такое v