Может кто-нибудь объяснить знак доллара в Javascript?

Этот код находится здесь:

var $item = $(this).parent().parent().find('input');

Какова цель знака доллара в имени переменной, почему бы просто не исключить его?

Ответы

Ответ 1

A '$' в переменной означает ничего особенного для интерпретатора, как подчеркивание.

Из того, что я видел, многие люди, использующие jQuery (это то, что мне нравится в вашем примере кода) имеют тенденцию к префиксу переменные, которые содержат объект jQuery с $, так что они легко идентифицируются и не смешиваются с, скажем, целыми числами.

Функция знака доллара $() в jQuery - это часто используемая библиотечная функция, поэтому желательно короткое имя.

Ответ 3

Знак доллара рассматривается как обычная буква или подчеркивание (_). Это не имеет особого значения для переводчика.

В отличие от многих похожих языков, идентификаторы (такие как функциональные имена и имена переменных) в Javascript могут содержать не только буквы, цифры и символы подчеркивания, но также могут содержать знаки доллара. Они даже могут начинаться со знака доллара или состоять только из знака доллара и ничего более.

Таким образом, $ является допустимым именем функции или переменной в Javascript.

Зачем вам знак доллара в идентификаторе?

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

В вашем примере, однако, это не так. Похоже, кто-то просто поставил знак доллара в начале для забавы - возможно, это был программист PHP, который сделал это по привычке, или что-то в этом роде. В PHP все имена переменных должны иметь знак доллара перед ними.

В настоящее время в интерпретаторе есть еще одно общее значение знака доллара: объект jQuery, имя которого состоит только из одного знака доллара ($). Это соглашение заимствовано из более ранних Javascript-фреймворков, таких как Prototype, и если jQuery используется с другими такими фреймворками, произойдет конфликт имен, поскольку они оба будут использовать имя $ (jQuery можно настроить на использование другого имени для своего глобального объекта.). В Javascript нет ничего особенного, что позволяет jQuery использовать один знак доллара в качестве имени объекта; как уже упоминалось выше, это просто еще одно действительное имя идентификатора.

Ответ 4

В вашем примере значение $не имеет особого значения, кроме символа имени.

Однако в ECMAScript 6 (ES6) $может представлять Template Literal

var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.

Ответ 5

Знак доллара используется в ecmascript 2015-2016 как "шаблонные литералы". Пример:

var a = 5;
var b = 10;
console.log('Sum is equal: ${a + b}'); // 'Sum is equlat: 15'

Вот рабочий пример: https://es6console.com/j3lg8xeo/ Обратите внимание на этот знак " ' ", это не нормальные кавычки.

Вы также можете встретить $ при работе с библиотекой jQuery.

Знак $ в регулярных выражениях означает конец строки.

Ответ 6

Нет причин. Может быть, тот, кто его закодировал, исходил из PHP. Он имеет такой же эффект, как если бы вы назвали его "_item" или "item" или "item $$".

Возможно, это какая-то венгерская нотация для кодера, чтобы отметить, что переменная является элементом DOM или чем-то.

Ответ 7

Вот короткое видео объяснение: https://www.youtube.com/watch?v=Acm-MD_6934

В соответствии с ECMA International Identifier Names являются токенами, которые интерпретируются в соответствии с грамматикой, приведенной в разделе "Идентификаторы" глава 5 Юникода с небольшими модификациями. Идентификатор - это имя идентификатора, которое не является зарезервированнымWord (см. 7.6.1). Грамматика идентификатора Юникода основана на нормативных и информативных категориях символов, указанных в стандарте Unicode. Символы в указанных категориях в версии 3.0 стандарта Unicode должны рассматриваться как в этих категориях всеми соответствующими реализациями ECMAScript. Этот стандарт указывает конкретные добавления символов:

Знак доллара ($) и символ подчеркивания (_) разрешены в любом месте идентификатора_имя.

Дополнительное чтение можно найти на: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6

Ecma International - отраслевая ассоциация, основанная в 1961 году и посвященная стандартизации информационно-коммуникационных технологий (ИКТ) и бытовой электроники (CE).

Ответ 8

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

Это означает, что когда нужно вызвать другую функцию jQuery для объекта, вам не нужно будет снова заключать ее в $(). Например, сравните это:

// the usual way
var item = $(this).parent().parent().find('input');
$(item).hide(); // this is a double wrap, but required for code readability
item.hide(); // this works but is very unclear how a jQuery function is getting called on this 

// with $ prefix
var $item = $(this).parent().parent().find('input');
$item.hide(); // direct call is clear
$($item).hide(); // this works too, but isn't necessary

С префиксом $ переменные, уже содержащие объекты jQuery, мгновенно распознаются, а код становится более читабельным, и устраняет двойное/множественное перенос с помощью $().