Почему я вижу переменные JavaScript с префиксом $?
Это своего рода мета-вопрос. Многие фрагменты JavaScript, которые я видел здесь в SO, называются с префиксом знака доллара (например, $id
во второй строке фрагмента, показанного в этом вопросе). Я не имею в виду jQuery или другие библиотеки. Мне хорошо известно, что это действительно так, но, когда это не необходимо, это кажется неудобным. Почему люди называют эти переменные такими? Это просто знакомство с языком на стороне сервера, например с переносом PHP в свой код JavaScript?
Я подумал, что, возможно, это было определение переменной как объекта jQuery, например, когда вы сохраняете результат выбора переменной, чтобы впоследствии избежать повторных выборов, но я не видел никакого согласованного соглашения.
Ответы
Ответ 1
Синтаксически сам знак доллара ничего не значит - интерпретатору, это просто другой символ, например _
или q
. Но многие люди, использующие jQuery и другие подобные структуры, будут префиксными переменными, которые содержат объект jQuery с $, чтобы они были легко идентифицированы и, таким образом, не смешивались с целыми или целыми числами. Вы могли бы так же легко принять одно и то же соглашение, префикс таких переменных с помощью jq_
, и он будет иметь тот же эффект.
По сути, это грубый вид венгерская нотация.
Ответ 2
Я иногда буду префикс имени переменной с $, чтобы указать, что это элемент, обернутый jQuery (чаще всего, когда я использую $(this)
в функции много, я назначу это $this
).
Часть того, из чего может возникнуть несогласие, заключается в том, что люди копируют код вместе, используя разные соглашения, тем самым создавая непоследовательный код.
Кроме того, иногда (редко я надеюсь) люди, которые программируют в PHP много, будут помещать $в начале своих имен переменных по привычке.
Ответ 3
Я подозреваю, что человек в этом примере просто копировал шаблон jQuery или использовался для PHP/Perl, не понимая при этом, что он не нужен и не имеет особого значения.
Однако, я видел, как опытные программисты использовали его для имен переменных, которые являются зарезервированными ключевыми словами, такими как $class
или $this
. Или даже для глобалов. Это действительно личное предпочтение больше, чем что-либо в этом случае.