O código em questão está aqui:
var $item = $(this).parent().parent().find('input');
Qual é o objetivo do cifrão no nome da variável, por que não excluí-lo?
document.querySelector
edocument.querySelectorAll
O código em questão está aqui:
var $item = $(this).parent().parent().find('input');
Qual é o objetivo do cifrão no nome da variável, por que não excluí-lo?
document.querySelector
edocument.querySelectorAll
Respostas:
Um '$' em uma variável não significa nada de especial para o intérprete, como um sublinhado.
Pelo que vi, muitas pessoas que usam jQuery (que é como o seu código de exemplo me parece) tendem a prefixar variáveis que contêm um objeto jQuery com $, para que sejam facilmente identificadas e não se misturem com, por exemplo, números inteiros .
A função de cifrão $()
no jQuery é uma função de biblioteca usada com freqüência, portanto, um nome abreviado é desejável.
var $=function(){}
é o mesmo que fazer var a=function(){}
.
jQuery(document).ready(function($){
... Então o $ é usado dentro da implementação da função.
$scope
$, é um dos caracteres desse nome. Assim como se você tirar e
o final $scope
, ele não funcionará, portanto, tirar o $
também não funcionará. No caso de você ver algo como $( "a" ).addClass( "test" )
, o cifrão é o nome inteiro do que quer que seja.
No seu exemplo, o $ não tem significado especial além de ser um caractere do nome.
No entanto , no ECMAScript 6 (ES6), o $ pode representar um Literal de Modelo
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
O sinal $ é um identificador para variáveis e funções.
Isso tem uma explicação clara de para que serve o 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 ou um sublinhado normal (_
). Não tem significado especial para o intérprete.
Ao contrário de muitos idiomas semelhantes, os identificadores (como nomes funcionais e de variáveis) no Javascript podem conter não apenas letras, números e sublinhados, mas também podem conter cifrões . Eles podem até começar com um cifrão ou consistir apenas de um cifrão e nada mais.
Assim, $
é uma função válida ou nome de variável em Javascript.
Por que você deseja um cifrão em um identificador?
A sintaxe realmente não impõe nenhum uso específico do cifrão em um identificador; portanto, cabe a você como deseja usá-lo. No passado, costumava ser recomendado iniciar um identificador com um cifrão apenas no código gerado - ou seja, 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 cifrão no início por diversão - talvez eles tenham sido um programador PHP que fez isso por hábito ou algo assim. No PHP, todos os nomes de variáveis devem ter um cifrão na frente deles.
Atualmente, existe outro significado comum para um cifrão em um intérprete: o objeto jQuery, cujo nome consiste apenas em um único cifrão ( $
). Esta é uma convenção emprestada de estruturas Javascript anteriores, como Prototype, e se o jQuery for usado com outras estruturas, haverá um conflito de nomes porque os dois usarão o nome $
(o jQuery pode ser configurado para usar um nome diferente para seu objeto global) . Não há nada especial em Javascript que permita ao jQuery usar o único cifrão como o nome do objeto; como mencionado acima, é simplesmente apenas outro nome de identificador válido.
var $j = jQuery.noConflict();
agora. $ J é o objeto jQuery.
O cifrão é 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 está um exemplo de trabalho: https://es6console.com/j3lg8xeo/ Observe este sinal " ` ", não são aspas normais.
Você também pode conhecer $ enquanto trabalha com a biblioteca jQuery .
$ sign in Expressões regulares significa o fim da linha.
Sem motivo Talvez a pessoa que o codificou tenha vindo do PHP. Tem o mesmo efeito como se você o tivesse nomeado "_item" ou "item" ou "item $$".
Como sufixo (como "item $", pronunciado "items"), pode significar um observável, como um elemento DOM, como uma convenção chamada "Notação Finlandesa", semelhante à Notação Húngara.
Aqui está uma boa explicação curta em vídeo: https://www.youtube.com/watch?v=Acm-MD_6934
De acordo com o Ecma International Identifier, os nomes são tokens que são interpretados de acordo com a gramática dada na seção "Identificadores" do capítulo 5 do padrão Unicode, com algumas pequenas modificações. Um identificador é um IdentifierName que não é uma palavra reservada ( consulte 7.6.1 ). A gramática do identificador Unicode é baseada nas categorias de caracteres normativos e informativos especificados 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 em conformidade com o ECMAScript. Esse padrão especifica adições de caracteres específicas:
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 do setor fundada em 1961 e dedicada à padronização da Tecnologia da Informação e Comunicação (TIC) e Eletrônicos de Consumo (CE).
Ao usar o jQuery, o uso do $
símbolo como prefixo no nome da variável é meramente por convenção; é completamente opcional e serve apenas para indicar que a variável contém um objeto jQuery, como no seu exemplo.
Isso significa que, quando outra função jQuery precisar ser chamada no objeto, você não precisará envolvê-la $()
novamente. Por exemplo, compare estes:
// 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
Com o $
prefixo, as variáveis que já contêm objetos jQuery são instantaneamente reconhecíveis e o código mais legível e elimina o empacotamento duplo / múltiplo $()
.