Может кто-нибудь объяснить знак доллара в Javascript?
Этот код находится здесь:
var $item = $(this).parent().parent().find('input');
Какова цель знака доллара в имени переменной, почему бы просто не исключить его?
Ответы
Ответ 1
A '$' в переменной означает ничего особенного для интерпретатора, как подчеркивание.
Из того, что я видел, многие люди, использующие jQuery (это то, что мне нравится в вашем примере кода) имеют тенденцию к префиксу переменные, которые содержат объект jQuery с $, так что они легко идентифицируются и не смешиваются с, скажем, целыми числами.
Функция знака доллара $()
в jQuery - это часто используемая библиотечная функция, поэтому желательно короткое имя.
Ответ 2
Знак $ - это идентификатор переменных и функций.
https://web.archive.org/web/20160529121559/http://www.authenticsociety.com/blog/javascript_dollarsign
Это имеет четкое объяснение того, для чего предназначен знак доллара.
Вот альтернативное объяснение: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
Ответ 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, мгновенно распознаются, а код становится более читабельным, и устраняет двойное/множественное перенос с помощью $()
.