Qual é o significado do sinal " $ " em JavaScript

no seguinte código JavaScript existe um sinal de dólar ($). O que significa?

$(window).bind('load', function() {
    $('img.protect').protectImage();
});
 131
Author: Armand Delessert, 2009-07-19

7 answers

O seu pedaço de código parece estar a referir-se a métodos de uma das bibliotecas JavaScript populares (jQuery, protótipo, mooTools, etc.). Não há nada de misterioso no uso de JavaScript. $ é simplesmente um identificador de JavaScript válido.

O JavaScript permite letras, números superiores e inferiores, e $ e _. O $ destinava-se a ser utilizado para variáveis geradas por máquinas (tais como $0001).

Protótipo, jQuery, e a maioria as bibliotecas de javascript usam o $ como o objeto de base primário (ou função). A maioria deles também tem uma maneira de renunciar ao {[[0]} para que ele possa ser usado com outra biblioteca que o usa. Nesse caso, utilize jQuery em vez de $. Na verdade, $ é apenas um atalho para jQuery.

 252
Author: Nosredna, 2015-05-26 15:30:11

É o código mais provável jQuery (mais precisamente, JavaScript usando a biblioteca jQuery).

O $ representa a funçãojQuery , e é na verdade um nome abreviado para jQuery. (Ao contrário da maioria das línguas, o símbolo $ não está reservado, e pode ser usado como um nome variável.) It is typically used as a selector (i.e. a function that returns a set of elements found in the DOM).

 37
Author: Noldorin, 2009-07-19 18:03:19

De outra resposta:

Um pouco de história Lembre-se, não há nada inerentemente especial em"$". É um nome variável como qualquer outro. Em dias anteriores, as pessoas costumavam escrever código usando documento.getElementById. Como JavaScript é sensível a maiúsculas, era normal cometer erros ao escrever o documento.getElementById. Devo capitalizar " b " De "by"? Devo capital " i " de Id? Percebes o que quero dizer. Porque as funções são cidadãos de primeira classe em JavaScript, podes sempre fazer isto.
var $ = document.getElementById; //freedom from document.getElementById!

[EDIT: parece que no Firefox 3 e no Google Chrome, Você não pode fazer um nome falso tão facilmente. Em IE6 e Firefox2, a técnica acima ainda funciona.]

Quando a Biblioteca protótipo chegou, eles nomearam a sua função, que obtém os elementos DOM, como '$' para salvar na digitação/legibilidade [Ao escrever o código JS, na maioria das vezes você começa com a seleção de alguns elementos DOM]. Quase todas as bibliotecas JavaScript copiaram esta ideia. Protótipo também introduzido $$ função para seleccionar os elementos com o selector CSS.

O JQuery não só adaptou a ' função$', mas expandiu-se para a fazer aceitar todo o tipo de 'selectores' para obter os elementos que deseja. Agora, se você já está usando protótipo em seu projeto e queria incluir jQuery, você estará em problema, pois '$' pode se referir à implementação do protótipo ou à implementação da jQuery. É por isso que a jQuery tem a opção de noConflict para que você possa incluir jQuery em seu projeto, que usa protótipos e migre lentamente o seu código. Acho que foi uma jogada brilhante da parte do John! :)

 33
Author: SolutionYogi, 2017-05-23 12:26:25

O $() é a versão abreviada de jQuery() usada na biblioteca jQuery .

 17
Author: chchrist, 2015-07-25 10:53:12
Como todas as outras respostas dizem, pode ser quase tudo, mas geralmente é "JQuery".

No entanto, no ES6 é um operador de interpolação de cadeias de caracteres num modelo "literal" eg.

var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;

Resultado:

Há tantas ideias novas hoje em dia !!
 8
Author: Bob, 2017-07-16 14:16:50

Além das respostas acima, $ não tem significado especial em javascript, é livre para ser usado em nome de objetos. In jQuery , it is simply used as an alias for the jQuery object and jQuery () function. No entanto, você pode encontrar situações em que você quer usá-lo em conjunto com outra biblioteca JS que também usa $, o que resultaria em um conflito de nome. Há um método em JQuery apenas por esta razão, jQuery.noConflict().

Aqui está uma amostra de jQuery doc's:
<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>

Em alternativa, também pode usar um deste tipo

(function ($) {
// Code in which we know exactly what the meaning of $ is
} (jQuery));

Ref:https://api.jquery.com/jquery.noconflict/

 3
Author: Vishnu Mallipudi, 2018-02-19 11:48:23

Da documentação do jQuery que descreve o objecto principal do jQuery:

Muitos programadores prefixam a $ para o nome das variáveis que contêm jQuery objetos a fim de ajudar a diferenciar. Não há nada de mágico esta prática-apenas ajuda algumas pessoas a manter o controle do que diferente as variáveis contêm.

 2
Author: Josh Britton, 2017-07-16 14:16:01