Почему я вижу переменные JavaScript с префиксом $?

Это своего рода мета-вопрос. Многие фрагменты JavaScript, которые я видел здесь в SO, называются с префиксом знака доллара (например, $id во второй строке фрагмента, показанного в этом вопросе). Я не имею в виду jQuery или другие библиотеки. Мне хорошо известно, что это действительно так, но, когда это не необходимо, это кажется неудобным. Почему люди называют эти переменные такими? Это просто знакомство с языком на стороне сервера, например с переносом PHP в свой код JavaScript?

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

Ответы

Ответ 1

Синтаксически сам знак доллара ничего не значит - интерпретатору, это просто другой символ, например _ или q. Но многие люди, использующие jQuery и другие подобные структуры, будут префиксными переменными, которые содержат объект jQuery с $, чтобы они были легко идентифицированы и, таким образом, не смешивались с целыми или целыми числами. Вы могли бы так же легко принять одно и то же соглашение, префикс таких переменных с помощью jq_, и он будет иметь тот же эффект.

По сути, это грубый вид венгерская нотация.

Ответ 2

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

Часть того, из чего может возникнуть несогласие, заключается в том, что люди копируют код вместе, используя разные соглашения, тем самым создавая непоследовательный код.

Кроме того, иногда (редко я надеюсь) люди, которые программируют в PHP много, будут помещать $в начале своих имен переменных по привычке.

Ответ 3

Я подозреваю, что человек в этом примере просто копировал шаблон jQuery или использовался для PHP/Perl, не понимая при этом, что он не нужен и не имеет особого значения.

Однако, я видел, как опытные программисты использовали его для имен переменных, которые являются зарезервированными ключевыми словами, такими как $class или $this. Или даже для глобалов. Это действительно личное предпочтение больше, чем что-либо в этом случае.