1134 votes

Pourquoi une variable JavaScript commence-t-elle par un signe de dollar ?

Je vois assez souvent du JavaScript avec des variables qui commencent par un signe de dollar. Quand/pourquoi choisiriez-vous de préfixer une variable de cette manière ?

(Je ne parle pas de $('p.foo') que vous voyez dans jQuery et d'autres, mais des variables normales comme $name y $order )

22 votes

C'est probablement une habitude prise lors de la programmation en Perl. (edit : ou PHP)

8 votes

Certains langages l'exigent, comme PHP ou Perl. Je suppose que le développeur n'a pas oublié que ce n'est pas nécessaire en javascript.

3 votes

Ou ils ne voulaient pas se donner la peine d'abandonner cette habitude. C'est très probablement la bonne réponse, car de nombreux développeurs qui créent leur propre page Web le font en utilisant PHP et javascript.

21voto

Stevo a raison, la signification et l'utilisation du signe dollar script (en Javascript et dans la plateforme jQuery, mais pas en PHP) est complètement sémantique. $ est un caractère qui peut être utilisé comme partie d'un nom d'identifiant. En outre, le signe dollar n'est peut-être pas la chose la plus "bizarre" que l'on puisse rencontrer en Javascript. Voici quelques exemples de noms d'identifiants valides :

var _       = function() { alert("hello from _"); }
var \u0024  = function() { alert("hello from $ defined as u0024"); }
var Ø       = function() { alert("hello from Ø"); }
var $$$$$   = function() { alert("hello from $$$$$"); }

Tous les exemples ci-dessus fonctionnent.

Essayez-les.

8voto

Le caractère $ n'a pas de signification particulière pour le moteur JavaScript. C'est juste un autre caractère valide dans un nom de variable comme a-z, A-Z, _, 0-9, etc...

2 votes

C'est vrai, mais ce n'est pas ce qui a été demandé. Je suis venu ici pour comprendre pourquoi il était utilisé et il semble que le cas où je le voyais était pour discerner une var contenant un objet jquery entre une var contenant un objet dom.

3 votes

@rtpHarry vous n'étiez pas celui qui a posé la question, et la question "pourquoi" a été répondue ici de manière adéquate. Cela n'a rien à voir avec JQuery, comme l'indiquait également la question. En fait, je pense que la réponse ci-dessus est celle qui correspond le mieux à la question - parfois, si vous voulez comprendre quelque chose, vous avez besoin de la réponse la plus petite et la plus claire. $ n'a pas de signification particulière en JavaScript. Période.

0 votes

Je trouve que certaines ... ahem ... personnes veulent ajouter des signes de dollar aux noms de variables pour rendre les choses plus angulaires.

2voto

Brett Zamir Points 5355

Depuis _ au début d'un nom de variable est souvent utilisé pour indiquer une variable privée (ou du moins une variable destinée à rester privée), je trouve que $ pratique pour ajouter devant mes propres alias succincts à des bibliothèques de code générique.

Par exemple, lorsque j'utilise jQuery, je préfère utiliser la variable $J (au lieu de simplement $ ) et utiliser $P lors de l'utilisation de php.js, etc.

Le préfixe la distingue visuellement d'autres variables telles que mes propres variables statiques, ce qui m'indique que le code fait partie d'une bibliothèque ou d'une autre, et il est moins susceptible d'entrer en conflit avec d'autres personnes ou de les confondre une fois qu'elles connaissent la convention.

Il n'encombre pas non plus le code (et ne nécessite pas de saisie supplémentaire) comme le fait un nom entièrement spécifié et répété pour chaque appel à la bibliothèque.

J'aime à penser que c'est similaire à ce que font les touches de modification pour étendre les possibilités des touches uniques.

Mais ce n'est que ma propre convention.

2voto

${varname} est simplement une convention d'appellation que les développeurs de jQuery utilisent pour distinguer les variables qui contiennent des éléments jQuery.

Plain {varname} est utilisé pour stocker des éléments généraux comme des textes et des chaînes de caractères. ${varname} contient les éléments renvoyés par jQuery.

Vous pouvez utiliser des {varname} pour stocker les éléments jQuery également, mais comme je l'ai dit au début, cela la distingue des variables ordinaires et la rend beaucoup plus facile à comprendre (imaginez la confondre avec une variable ordinaire et chercher partout pour comprendre ce qu'elle contient).

Par exemple :

var $blah = $(this).parents('.blahblah');

Ici, blah stocke un élément jQuery retourné.

Donc, quand quelqu'un d'autre voit le $blah dans le code, ils comprendront qu'il ne s'agit pas seulement d'une chaîne ou d'un nombre, mais d'un élément jQuery.

6 votes

Vous venez de reformuler la réponse acceptée il y a 6 ans.

0 votes

Je suppose que cela ne signifie pas que la réponse est de "basse qualité".

2voto

Comme j'en ai fait l'expérience au cours des 4 dernières années, cela permettra à quelqu'un d'identifier facilement si la variable pointe une valeur/un objet ou un élément DOM enveloppé par jQuery.

Ex:
var name = 'jQuery';
var lib = {name:'jQuery',version:1.6};

var $dataDiv = $('#myDataDiv');

Dans l'exemple ci-dessus, lorsque je vois la variable "$dataDiv", je peux facilement dire que cette variable pointe vers un élément DOM enveloppé par jQuery (dans ce cas, il s'agit de div). Je peux également appeler toutes les méthodes jQuery sans envelopper à nouveau l'objet, comme $dataDiv.append(), $dataDiv.html(), $dataDiv.find() au lieu de $($dataDiv).append().

J'espère que cela pourra vous aider. Enfin, je tiens à dire que ce serait une bonne pratique de suivre ces conseils, mais que ce n'est pas obligatoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X