Использование знака доллара в JavaScript: причины и практики
Быстрый ответ
Префикс доллара $
перед именем переменной в JavaScript не задан как часть синтаксических требований языка. Он, как правило, указывает, что перед нами переменная, связанная с объектом jQuery, представляет собой кэшированные или специальные значения либо же применяется в качестве стилистического решения разработчиков.
Возьмем для примера:
let $planetEarth = $('#our-planet'); // jQuery ищет элемент с ID 'our-planet' в документе
Происхождение применения долларового знака в JS
Знак доллара как префикс имен переменных в JavaScript укоренился благодаря jQuery — одной из самых известных библиотек. Такое использование больше обслуживает удобство разработчика, нежели подчиняется синтаксису языка, и помогает различить объекты jQuery от обычных переменных или элементов встроенного DOM.
В программном коде, где используются разные скрипты, видя $xyzElement
, можно сразу понять, что речь идет о элементе, обработанном в jQuery.
Роль фреймворков и ограничения их использования
Иные фреймворки, например, AngularJS, намеренно используют долларовый префикс при обозначении публичных сервисов и методов. Двойной знак доллара $$
зарезервирован для внутреннего/приватного использования фреймворка. Это позволяет разработчикам избежать конфликтов с именами и очень отчетливо помечать свои объекты.
Кодировка руководств и этикет
Несмотря на то, что префикс доллара не является вложенной частью синтаксиса JavaScript, его использование признается лучшим стандартом программирования в контексте некоторых JavaScript-библиотек. Следование таким договоренностям по наименованию, как $
, может повысить читаемость кода и облегчить его поддержку.
Тем не менее, не забывайте, что следует принимать во внимание общеупотребительные конвенции вашей кодовой базы или стандарты кодирования в команде, чтобы не вносить путаницу.
Когда долларовый знак уместен
Взаимодействие с jQuery и библиотеками
- При использовании селекторов jQuery распространена конвенция предварять переменные, хранящие jQuery-объекты, знаком доллара:
let $broccoli = $(".healthy-veg"); // Вот кто везучий!
- Во время работы с некоторыми библиотеками знак
$
может выступать коротким псевдонимом для функций библиотеки или утилит:
let $ = lodash; // Сокращение для использования Lodash
Префиксы как показатели для простоты чтения
- Для обозначения элементов, приобретенных через jQuery:
let $vine = $('#grapes'); // Моментально становится понятно, что работаем с jQuery-селектором
- В AngularJS для обозначения сервисов и основных объектов:
angular.module('myLunch').controller('LunchMenu', function($scope, $http){
// Здесь $scope и $http представляют собой сервисы AngularJS
});
- Применение опытными разработчиками для выделения переменных со спецзначениями:
let $ultimatePower = computeInfinityStones(); // Обращаться с бережностью
Осторожное применение
С тщательностью используйте имена с префиксами $
и $$
во фреймворках типа AngularJS, чтобы не столкнуться с проблемами конфликта имен с существующими сервисами или функциями фреймворка.
Полезные материалы
- jQuery() | jQuery API Documentation — Подробно о использовании алиаса $ в jQuery.
- Лексическая грамматика – JavaScript | MDN — Официальные материалы о идентификаторах JS, в том числе о применении символа $.
- Почему переменная JavaScript может начинаться с доллара? – Stack Overflow — Дискуссия сообщества о использовании знака $ в названиях переменных JavaScript.
- AngularJS's Controller As and the vm Variable — Рассмотрение Джона Папы применения $ в контроллерах AngularJS.
- Переменные — Обзор использования различных символов для именования переменных, включая долларовый знак.