Quelqu'un peut-il expliquer le signe dollar en Javascript?

Le code en question est ici:

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

Quel est le but du signe dollar dans le nom de la variable, pourquoi ne pas simplement l'exclure?

313
demandé sur Donald Duck 2009-05-11 07:00:26

7 réponses

Un ' $ ' dans une variable ne signifie rien de spécial pour l'interpréteur, un peu comme un trait de soulignement.

D'après ce que j'ai vu, beaucoup de gens utilisant jQuery (ce à quoi ressemble votre exemple de code) ont tendance à préfixer des variables contenant un objet jQuery avec un $ afin qu'elles soient facilement identifiées et non mélangées avec, disons, des entiers.

La fonction de signe dollar $() dans jQuery est une fonction de bibliothèque fréquemment utilisée, un nom court est donc souhaitable.

318
répondu cobbal 2015-11-14 20:49:39

Le signe $ est un identifiant pour les variables et les fonctions.

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

Qui a une explication claire de ce que le signe du dollar est pour.

Voici une autre explication: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html

32
répondu AlbertoPL 2016-07-19 11:14:01

Le signe dollar est traité comme une lettre Normale ou un trait de soulignement (_). Cela n'a pas de signification particulière pour l'interprète.

Contrairement à de nombreux langages similaires, les identifiants (tels que les noms fonctionnels et variables) en Javascript peuvent contenir non seulement des lettres, des chiffres et des traits de soulignement, mais peuvent également contenir des signes de dollar. Ils sont même autorisés à commencer par un signe dollar, ou consister seulement d'un signe de dollar et rien d'autre.

Ainsi, $ est un fonction valide ou nom de variable en Javascript.

Pourquoi voudriez-vous un signe dollar dans un identifiant?

La syntaxe n'impose pas vraiment une utilisation particulière du signe dollar dans un identifiant, donc c'est à vous de décider comment vous souhaitez l'utiliser. Dans le passé, il a souvent été recommandé de démarrer un identifiant avec un signe dollar uniquement dans code généré - c'est-à-dire, code créé non pas à la main mais par un générateur de code.

Dans votre exemple, cependant, cela ne semble être le cas. On dirait que quelqu'un vient de mettre un signe dollar au début pour le plaisir - peut-être qu'ils étaient un programmeur PHP qui l'a fait par habitude, ou quelque chose. En PHP, tous les noms de variables doivent commencer par un signe dollar.

Il existe une autre signification commune pour un signe dollar dans un interpréteur de nos jours: l'objet jQuery, dont le nom seulement consiste en un seul signe dollar ($). C'est une convention empruntée à des frameworks Javascript antérieurs comme Prototype, et si jQuery est utilisé avec d'autres frameworks de ce type, il y aura un conflit de noms car ils utiliseront tous les deux le nom $ (jQuery peut être configuré pour utiliser un nom différent pour son objet global). Il n'y a rien de spécial en Javascript qui permet à jQuery d'utiliser le signe dollar unique comme nom d'objet; comme mentionné ci-dessus, c'est simplement un autre nom d'identifiant valide.

28
répondu thomasrutter 2015-01-27 00:06:52

Dans votre exemple, le $ n'a pas de signification particulière autre que d'être un caractère du nom.

cependant , dans ECMAScript 6 (ES6), le $ peut représenter un littéral de modèle

var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
26
répondu UpTheCreek 2016-12-15 15:30:09

Le signe Dollar est utilisé dans ecmascript 2015-2016 comme 'littéraux de modèle'. Exemple:

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

Voici un exemple de travail: https://es6console.com/j3lg8xeo/ Remarquez ce signe " ` ",ce ne sont pas des citations normales.

U peut également rencontrer $ tout en travaillant avec library jQuery .

$ Se connecter Expressions régulières signifie fin de ligne.

6
répondu Vasyl Gutnyk 2017-12-13 12:15:56

Aucune raison. Peut-être que la personne qui l'a codé est venue de PHP. Il a le même effet que si vous l'avaient nommé "_item" ou "point" ou "point$$".

Peut-être que c'est une sorte de notation hongroise pour le codeur de noter que la variable est un élément DOM ou quelque chose.

2
répondu Claudiu 2009-05-11 03:04:24

Voici une bonne courte explication vidéo: https://www.youtube.com/watch?v=Acm-MD_6934

Selon Ecma International Identifier les noms sont des jetons qui sont interprétés selon la grammaire donnée dans la section" identifiants " de Chapitre 5 de la norme Unicode, avec quelques petites modifications. Un identifiant est un IdentifierName qui n'est pas un mot réservé (Voir 7.6.1). La grammaire de l'identifiant Unicode est basée à la fois normative et informative catégories de caractères spécifiées par la norme Unicode. Les caractères des catégories spécifiées dans la version 3.0 de la norme Unicode doivent être traités comme dans ces catégories par toutes les implémentations ECMAScript conformes.cette norme spécifie des ajouts de caractères spécifiques:

Le signe dollar ( $ ) et le trait de soulignement ( _ ) sont autorisés n'importe où dans un IdentifierName.

Plus de lectures peuvent être trouvées sur: http://www.ecma-international.org/ecma-262/5.1/#sec-7.6

Ecma International est une association industrielle fondée en 1961 et dédiée à la normalisation des technologies de L'Information et de la Communication (TIC) et de l'Électronique grand public (CE).

2
répondu Nomis 2015-02-10 10:25:35