Использование знака доллара в JavaScript: причины и практики

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Префикс доллара $ перед именем переменной в JavaScript не задан как часть синтаксических требований языка. Он, как правило, указывает, что перед нами переменная, связанная с объектом jQuery, представляет собой кэшированные или специальные значения либо же применяется в качестве стилистического решения разработчиков.

Возьмем для примера:

JS
Скопировать код
let $planetEarth = $('#our-planet'); // jQuery ищет элемент с ID 'our-planet' в документе
Кинга Идем в IT: пошаговый план для смены профессии

Происхождение применения долларового знака в JS

Знак доллара как префикс имен переменных в JavaScript укоренился благодаря jQuery — одной из самых известных библиотек. Такое использование больше обслуживает удобство разработчика, нежели подчиняется синтаксису языка, и помогает различить объекты jQuery от обычных переменных или элементов встроенного DOM.

В программном коде, где используются разные скрипты, видя $xyzElement, можно сразу понять, что речь идет о элементе, обработанном в jQuery.

Роль фреймворков и ограничения их использования

Иные фреймворки, например, AngularJS, намеренно используют долларовый префикс при обозначении публичных сервисов и методов. Двойной знак доллара $$ зарезервирован для внутреннего/приватного использования фреймворка. Это позволяет разработчикам избежать конфликтов с именами и очень отчетливо помечать свои объекты.

Кодировка руководств и этикет

Несмотря на то, что префикс доллара не является вложенной частью синтаксиса JavaScript, его использование признается лучшим стандартом программирования в контексте некоторых JavaScript-библиотек. Следование таким договоренностям по наименованию, как $, может повысить читаемость кода и облегчить его поддержку.

Тем не менее, не забывайте, что следует принимать во внимание общеупотребительные конвенции вашей кодовой базы или стандарты кодирования в команде, чтобы не вносить путаницу.

Когда долларовый знак уместен

Взаимодействие с jQuery и библиотеками

  • При использовании селекторов jQuery распространена конвенция предварять переменные, хранящие jQuery-объекты, знаком доллара:
JS
Скопировать код
let $broccoli = $(".healthy-veg"); // Вот кто везучий!
  • Во время работы с некоторыми библиотеками знак $ может выступать коротким псевдонимом для функций библиотеки или утилит:
JS
Скопировать код
let $ = lodash; // Сокращение для использования Lodash

Префиксы как показатели для простоты чтения

  • Для обозначения элементов, приобретенных через jQuery:
JS
Скопировать код
let $vine = $('#grapes'); // Моментально становится понятно, что работаем с jQuery-селектором
  • В AngularJS для обозначения сервисов и основных объектов:
JS
Скопировать код
angular.module('myLunch').controller('LunchMenu', function($scope, $http){
  // Здесь $scope и $http представляют собой сервисы AngularJS
});
  • Применение опытными разработчиками для выделения переменных со спецзначениями:
JS
Скопировать код
let $ultimatePower = computeInfinityStones(); // Обращаться с бережностью

Осторожное применение

С тщательностью используйте имена с префиксами $ и $$ во фреймворках типа AngularJS, чтобы не столкнуться с проблемами конфликта имен с существующими сервисами или функциями фреймворка.

Полезные материалы

  1. jQuery() | jQuery API Documentation — Подробно о использовании алиаса $ в jQuery.
  2. Лексическая грамматика – JavaScript | MDN — Официальные материалы о идентификаторах JS, в том числе о применении символа $.
  3. Почему переменная JavaScript может начинаться с доллара? – Stack Overflow — Дискуссия сообщества о использовании знака $ в названиях переменных JavaScript.
  4. AngularJS's Controller As and the vm Variable — Рассмотрение Джона Папы применения $ в контроллерах AngularJS.
  5. Переменные — Обзор использования различных символов для именования переменных, включая долларовый знак.