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

При выборе имён для переменных важно придерживаться ряда правил — строгих (несоблюдение которых приводит к ошибкам) и рекомендаций (ошибок не вызывают, но облегчают работу с кодом).
Допустимые символы
- Буквы латинского алфавита (A-Z, a-z)
- Цифры (0-9), но только не в начале!
- Символ нижнего подчеркивания (_)
- Знак доллара ($)
*Другие символы Юникода. Теоретически допустимы символы из других языков, например, кириллица и иероглифы, но общепринятая практика — использование латинских букв, цифр и символов ($) и (_).
Примеры допустимых имён
--
*JavaScript чувствителен к регистру, userName и UserName — это разные переменные.
Примеры недопустимых имён
--
Рекомендации по именованию
(это общие договоренности, а не строгие правила)
- camelCase — для обычных переменных или функций.
- PascalCase — для классов и функций-конструкторов.
- UPPER_CASE — для констант (фиксированных физических и математических величин; конфигурационных констант, например, API-адреса, ключи доступа и т.д.; глобальных констант, которые используются в разных частях проекта; ключей localStorage/sessionStorage и т.д.).
*раньше абсолютно все константы именовались в UPPER_CASE нотации, но с появлением ключевого слова const, теперь это правило так строго соблюдать не обязательно, но для перечисленных выше случаев все же лучше этой рекомендации придерживаться.
И куда же без банального :)
- Не злоупотребляйте цифрами — использовать можно, но только если цифры добавляют в название информа-тивности, а не только потому что имя без цифры уже занято.
- Избегайте сокращений слов — давайте переменным короткие названия, но без непонятных сокращений. Старайтесь придумывать такие имена, чтобы сразу было понятно что делает функция или что хранит переменная без дополнительного изучения кода.
- Придерживайтесь одного стиля именования в проекте — это помогает другим разработчикам (и себе в будущем) легче читать и понимать код.
Зарезервированные слова
В JavaScript есть список зарезервированных ключевых слов, которые используются самим языком, поэтому их нельзя использовать в качестве имён переменных — это приведёт к ошибке.
Список зарезервированных слов регулярно обновляется с выходом новых версий стандарта ECMAScript.
Категория | Ключевые слова |
Стандартные (ES6) | break, case, catch, class, const, continue, debugger, default, delete, do, else, export, extends, finally, for, function, if, import, in, instanceof, let, new, return, super, switch, this, throw, try, typeof, var, void, while, with, yield |
На будущее | await, enum |
Строгий режим | implements, interface, package, private, protected, public, static |
В старых версиях | abstract, boolean, byte, char, double, final, float, goto, int, long, native, short, synchronized, transient, volatile |