Я довольно часто вижу JavaScript с переменными, которые начинаются со знака доллара. Когда / почему вы выбрали бы префикс переменной таким образом?
(Я не спрашиваю о $('p.foo')
синтаксисе, который вы видите в jQuery и других, но нормальные переменные, такие как $name
и $order
)
javascript
naming-conventions
кругозор
источник
источник
Ответы:
Очень распространенное использование в jQuery - это различать объекты jQuery, хранящиеся в переменных, от других переменных.
Например, я бы определил:
Я считаю, что это очень полезно при написании кода jQuery и позволяет легко видеть объекты jQuery, которые имеют другой набор свойств.
источник
В 1-м, 2-м и 3-м изданиях ECMAScript использование имен переменных с префиксом $ явно не поощрялось спецификацией, кроме как в контексте сгенерированного кода:
Тем не менее, в следующей версии ( 5-е издание , которое является текущим) это ограничение было снято, и вышеупомянутый отрывок заменен на
Таким образом, знак $ теперь может свободно использоваться в именах переменных. Определенные структуры и библиотеки имеют свои собственные соглашения о значении символа, отмеченные в других ответах здесь.
источник
$variable
, скорее всего, потому что он содержит целый объект jQuery.Как уже упоминалось, знак доллара предназначен для использования механически сгенерированным кодом. Однако это соглашение было нарушено некоторыми чрезвычайно популярными библиотеками JavaScript. JQuery, Prototype и MS AJAX (AKA Atlas) все используют этот символ в своих идентификаторах (или как полный идентификатор).
Короче говоря, вы можете использовать
$
когда угодно. (Переводчик не будет жаловаться.) Вопрос в том, когда вы хотите его использовать?Я лично не использую это, но я думаю, что это использование допустимо. Я думаю, что MS AJAX использует его, чтобы показать, что функция является псевдонимом для более подробного вызова.
Например:
Это похоже на разумное соглашение.
источник
В контексте AngularJS
$
префикс используется только для идентификаторов в коде платформы. Пользователям платформы рекомендуется не использовать ее в своих идентификаторах:Источник: https://docs.angularjs.org/api
источник
Я был тем человеком, который создал это соглашение еще в 2006 году и продвигал его в раннем списке рассылки jQuery, поэтому позвольте мне поделиться историей и мотивацией вокруг него.
Принятый ответ дает этот пример:
Но это не очень хорошо иллюстрирует это. Даже без
$
, у нас все равно было бы два разных имени переменной,email
иemail_field
. Это очень хорошо, прямо там. Зачем нам нужно бросать$
в одно из имен, когда у нас уже есть два разных имени?На самом деле, я бы не использовал
email_field
здесь по двум причинам:names_with_underscores
не является идиоматическим JavaScript иfield
не имеет смысла для элемента DOM. Но я следовал той же идее.Я пробовал несколько разных вещей, среди которых что-то очень похожее на пример:
(Конечно, объект jQuery может иметь более одного элемента DOM, но в коде, над которым я работал, было много
id
селекторов, поэтому в этих случаях имелось соответствие 1: 1.)У меня был другой случай, когда функция получила элемент DOM в качестве параметра, а также для него был нужен объект jQuery:
Ну, это немного сбивает с толку! В одном из моих фрагментов кода
email
это объект jQuery иemailElement
элемент DOM, а в другомemail
- элемент DOM иemailJQ
объект jQuery.Последовательности не было, и я продолжал смешивать их. Кроме того, было немного неприятно продолжать составлять два разных имени для одной и той же вещи: одно для объекта jQuery, а другое для соответствующего элемента DOM. Кроме того
email
,emailElement
иemailJQ
я продолжал пробовать и другие варианты.Тогда я заметил общую закономерность:
Поскольку JavaScript воспринимается
$
как просто еще одна буква для имен, и поскольку я всегда возвращал объект jQuery из$(whatever)
вызова, шаблон, наконец, меня осенило. Я мог бы взять$(...)
вызов и просто удалить некоторые символы, и это придумало бы довольно красивое имя:Зачеркнутый не идеален, но вы можете понять, что при удалении некоторых символов обе эти строки выглядят так:
Вот тогда я понял, что мне не нужно составлять соглашение вроде
emailElement
илиemailJQ
. На меня уже смотрелась хорошая конвенция: убрать некоторых персонажей из$(whatever)
звонка, и это превращается в$whatever
.а также:
Поэтому мне не приходилось все время придумывать два разных имени, я мог просто использовать одно и то же имя с
$
префиксом или без него . И$
префикс был хорошим напоминанием, что я имел дело с объектом jQuery:или:
источник
Стево прав, значение и использование знака сценария доллара (в Javascript и платформе jQuery, но не в PHP) полностью семантическое. $ - это символ, который можно использовать как часть имени идентификатора. Кроме того, знак доллара, возможно, не самая «странная» вещь, с которой вы можете столкнуться в Javascript. Вот несколько примеров допустимых имен идентификаторов:
Все приведенные выше примеры будут работать.
Попробовать их.
источник
Символ $ не имеет особого значения для движка JavaScript. Это просто еще один допустимый символ в имени переменной, например, az, AZ, _, 0-9 и т. Д.
источник
$
в JavaScript нет особого значения. Период.Поскольку
_
в начале имя переменной часто используется для обозначения закрытой переменной (или, по крайней мере, одной, предназначенной для сохранения приватности), я считаю$
удобным добавлять перед моими собственными краткими псевдонимами библиотеки общего кода.Например, при использовании jQuery я предпочитаю использовать переменную
$J
(а не просто$
) и использовать$P
при использовании php.js и т. Д.Префикс делает его визуально отличным от других переменных, таких как мои собственные статические переменные, указывая на тот факт, что код является частью той или иной библиотеки и с меньшей вероятностью будет конфликтовать или путать других, когда они знают соглашение.
Он также не загромождает код (или не требует дополнительной типизации), как и полностью указанное имя, повторяемое для каждого вызова библиотеки.
Мне нравится думать, что это похоже на то, что делают клавиши-модификаторы для расширения возможностей отдельных клавиш.
Но это всего лишь мое собственное соглашение.
источник
Как я испытал за последние 4 года, это позволит кому-то легко определить, является ли переменная, указывающая значение / объект, или DOM-элементом в JQuery-оболочке.
В приведенном выше примере, когда я вижу переменную «$ dataDiv», я могу легко сказать, что эта переменная указывает на элемент DOM, заключенный в jQuery (в данном случае это div). а также я могу вызывать все методы jQuery без повторного переноса объекта, например $ dataDiv.append (), $ dataDiv.html (), $ dataDiv.find () вместо $ ($ dataDiv) .append ().
Надеюсь, что это помогло. поэтому, наконец, хочу сказать, что это будет хорошей практикой, но не обязательно.
источник
${varname}
это просто соглашение об именах, которое разработчики jQuery используют для различения переменных, содержащих элементы jQuery.Обычный
{varname}
используется для хранения общих вещей, таких как тексты и строки.${varname}
содержит элементы, возвращенные из jQuery.Вы также можете использовать plain
{varname}
для хранения элементов jQuery, но, как я уже сказал в начале, это отличает его от простых переменных и делает его намного проще для понимания (представьте, что вы путаете его с простой переменной и ищите все, чтобы понять, что в нем содержится) ,Например :
Здесь бла хранит возвращенный элемент jQuery.
Поэтому, когда кто-то еще увидит
$blah
в коде код, он поймет, что это не просто строка или число, это элемент jQuery.источник
Хотя вы можете просто использовать его для добавления префиксов к своим идентификаторам, он должен использоваться для сгенерированного кода, например, для замены токенов в шаблоне.
источник
Угловое использование для свойств, созданных структурой. Думаю, они идут по (ныне несуществующей) подсказке, предоставленной ECMA-262 3.0.
источник
$ используется для DISTINGUISH между общими переменными и переменными jquery в случае нормальных переменных. позвольте вам разместить заказ во FLIPKART, тогда, если заказ представляет собой переменную, показывающую вывод строки, он называется простым как «заказ», но если мы щелкнем по порядку размещения, то объект будет возвращен, этот объект будет обозначен через $ как «$ упорядочить », чтобы программист мог выхватывать переменные javascript и jquery во всем коде.
источник
Если вы видите знак доллара ($) или двойной знак доллара ($$) и вам интересно, что это означает в среде Prototype, вот ваш ответ:
Источник:
http://www.prototypejs.org/api/utility/dollar-dollar
источник
Причина, по которой я иногда использую соглашения имен php с переменными javascript: при проверке входных данных я хочу запускать одинаковые алгоритмы как на стороне клиента, так и на стороне сервера. Я действительно хочу, чтобы две стороны кода выглядели как можно более одинаково, чтобы упростить обслуживание. Использование знаков доллара в именах переменных делает это проще.
(Кроме того, некоторые разумные вспомогательные функции помогают сделать код похожим, например, обтекание поисков по входным значениям, не-OO-версии strlen, substr и т. Д. Это все же требует некоторой ручной настройки.)
источник
Действительный идентификатор JavaScript shuold должен начинаться с буквы, подчеркивания (_) или знака доллара ($); последующие символы также могут быть цифрами (0-9). Поскольку JavaScript чувствителен к регистру, буквы включают символы от «A» до «Z» (заглавные буквы) и символы от «a» до «z» (строчные буквы).
Подробности:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variables
источник