Alguém pode explicar o cifrão em JavaScript?

O código em questão está aqui:

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

Qual é o propósito do cifrão no nome da variável, porque não apenas excluí-lo?

Um ‘$’ em uma variável significa nada de especial para o interpretador, muito parecido com um sublinhado.

Pelo que eu vi, muitas pessoas usando jQuery (que é o que seu código de exemplo parece comigo) tendem a prefixar variables ​​que contêm um object jQuery com $ para que sejam facilmente identificadas e não misturadas com, digamos, inteiros .

A function de cifrão $() em jQuery é uma function de biblioteca que é freqüentemente usada, portanto, um nome abreviado é desejável.

O sinal $ é um identificador para variables ​​e funções.

https://web.archive.org/web/20160529121559/http://www.authenticsociety.com/blog/javascript_dollarsign

Isso tem uma explicação clara sobre o significado do cifrão.

Aqui está uma explicação alternativa: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html

O cifrão é tratado como uma letra normal ou sublinhado ( _ ). Não tem significado especial para o intérprete.

Ao contrário de muitas linguagens semelhantes, identificadores (como nomes funcionais e variables) em Javascript podem conter não apenas letras, números e sublinhados, mas também podem conter sinais de dólar . Eles podem até começar com um sinal de dólar ou consistir apenas em um sinal de dólar e nada mais.

Assim, $ é uma function válida ou nome de variável em Javascript.

Por que você quer um sinal de dólar em um identificador?

A syntax não impõe realmente nenhum uso específico do cifrão em um identificador, então cabe a você como você deseja usá-lo. No passado, muitas vezes foi recomendado iniciar um identificador com um cifrão apenas no código gerado – isto é, código criado não manualmente, mas por um gerador de código.

No seu exemplo, no entanto, isso não parece ser o caso. Parece que alguém acabou de colocar um sinal de dólar no início para se divertir – talvez eles fossem um programador PHP que fez isso por hábito, ou algo assim. No PHP, todos os nomes de variables ​​devem começar com um cifrão.

Há outro significado comum para um cifrão em um intérprete atualmente: o object jQuery, cujo nome consiste apenas em um único cifrão ( $ ). Esta é uma convenção emprestada de frameworks JavaScript anteriores, como Prototype, e se jQuery for usado com outras estruturas, haverá um conflito de nomes, porque ambos usarão o nome $ (jQuery pode ser configurado para usar um nome diferente para seu object global ). Não há nada de especial em Javascript que permita que o jQuery use o único cifrão como seu nome de object; como mencionado acima, é simplesmente outro nome de identificador válido.

No seu exemplo, o $ não tem nenhum significado especial além de ser um personagem do nome.

No entanto , no ECMAScript 6 (ES6) o $ pode representar um Template Literal

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

O sinal de dólar é usado no ecmascript 2015-2016 como “literais de modelo”. Exemplo:

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

Aqui exemplo de trabalho: https://es6console.com/j3lg8xeo/ Observe este sinal ” ` “, suas citações não normais.

Você também pode encontrar $ enquanto trabalha com a biblioteca jQuery .

$ sign in Regular Expressions significa fim de linha.

Sem motivo. Talvez a pessoa que o codificou tenha vindo do PHP. Tem o mesmo efeito como se você tivesse chamado “_item” ou “item” ou “item $$”.

Talvez seja algum tipo de notação húngara para o codificador notar que a variável é um elemento DOM ou algo assim.

Aqui está uma boa explicação em vídeo curta: https://www.youtube.com/watch?v=Acm-MD_6934

De acordo com o Ecma International Identifier Names são tokens que são interpretados de acordo com a gramática dada na seção “Identifiers” do capítulo 5 do padrão Unicode, com algumas pequenas modificações. Um Identificador é um IdentifierName que não é um ReservedWord ( veja 7.6.1 ). A gramática do identificador Unicode é baseada em categorias de caracteres normativas e informativas especificadas pelo Padrão Unicode. Os caracteres nas categorias especificadas na versão 3.0 do padrão Unicode devem ser tratados como nessas categorias por todas as implementações do ECMAScript em conformidade. Esse padrão especifica adições específicas de caracteres:

O cifrão ($) e o sublinhado (_) são permitidos em qualquer lugar em um IdentifierName .

Outras leituras podem ser encontradas em: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6

A Ecma International é uma associação industrial fundada em 1961 e dedicada à padronização de Tecnologia da Informação e Comunicação (TIC) e Eletrônica de Consumo (CE).