Le code en question est ici:
var $item = $(this).parent().parent().find('input');
À quoi sert le signe dollar dans le nom de la variable, pourquoi ne pas simplement l'exclure?
document.querySelector
etdocument.querySelectorAll
Le code en question est ici:
var $item = $(this).parent().parent().find('input');
À quoi sert le signe dollar dans le nom de la variable, pourquoi ne pas simplement l'exclure?
document.querySelector
etdocument.querySelectorAll
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, de nombreuses personnes utilisant jQuery (à quoi ressemble mon exemple de code) ont tendance à préfixer les variables qui contiennent un objet jQuery avec un $ afin qu'elles soient facilement identifiées et non mélangées, disons, avec des entiers .
La fonction de signe dollar $()
dans jQuery est une fonction de bibliothèque qui est fréquemment utilisée, donc un nom court est souhaitable.
var $=function(){}
c'est comme faire var a=function(){}
.
jQuery(document).ready(function($){
... Ensuite, le $ est utilisé dans l'implémentation de la fonction.
$scope
$, c'est l'un des caractères de ce nom. Tout comme si vous décollez e
à la fin de $scope
, cela ne fonctionnera pas, donc la prise du $
testament ne fonctionnera pas non plus. Dans le cas où vous voyez quelque chose comme $( "a" ).addClass( "test" )
, le signe dollar est le nom complet de quoi que ce soit.
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 modèle littéral
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
Le signe $ est un identifiant pour les variables et les fonctions.
Cela explique clairement à quoi sert le signe dollar.
Voici une autre explication: http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
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 nombreuses langues 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 dollar . Ils sont même autorisés à commencer par un signe dollar, ou se composent uniquement d'un signe dollar et rien d'autre.
Ainsi, $
est une fonction valide ou un nom de variable en Javascript.
Pourquoi voudriez-vous un signe dollar dans un identifiant?
La syntaxe n'applique pas vraiment une utilisation particulière du signe dollar dans un identifiant, c'est donc à vous de décider comment vous souhaitez l'utiliser. Dans le passé, il a souvent été recommandé de commencer un identifiant avec un signe dollar uniquement dans le code généré - c'est-à-dire un code créé non pas à la main mais par un générateur de code.
Dans votre exemple, cependant, cela ne semble pas être le cas. On dirait que quelqu'un vient de mettre un signe dollar au début pour le plaisir - peut-être était-ce un programmeur PHP qui l'a fait par habitude, ou quelque chose du genre. En PHP, tous les noms de variables doivent avoir un signe dollar devant eux.
Il existe un autre sens commun pour un signe dollar dans un interpréteur de nos jours: l'objet jQuery, dont le nom ne se compose que d'un seul signe dollar ( $
). Il s'agit d'une convention empruntée aux 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 permette à jQuery d'utiliser le signe dollar unique comme nom d'objet; comme mentionné ci-dessus, il s'agit simplement d'un autre nom d'identifiant valide.
var $j = jQuery.noConflict();
maintenant $ j est l'objet jQuery.
Le signe dollar est utilisé dans ecmascript 2015-2016 comme `` modèles de littéraux ''. 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/ Notez ce signe " ` ", ce n'est pas des guillemets normaux.
U peut également rencontrer $ tout en travaillant avec la bibliothèque jQuery .
$ sign in Expressions régulières signifie fin de ligne.
Sans raison. Peut-être que la personne qui l'a codé venait de PHP. Il a le même effet que si vous l'aviez nommé "_item" ou "item" ou "item $$".
En tant que suffixe (comme "item $", prononcé "items"), il peut signifier un élément observable tel qu'un élément DOM en tant que convention appelée "notation finlandaise" similaire à la notation hongroise.
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 «Identifiers» du chapitre 5 de la norme Unicode, avec quelques petites modifications. Un identifiant est un identifiant qui n'est pas un mot réservé ( voir 7.6.1 ). La grammaire des identificateurs Unicode est basée sur les catégories de caractères normatives et informatives 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 .
De plus amples informations sont disponibles 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).
Lors de l'utilisation de jQuery, l'utilisation du $
symbole comme préfixe dans le nom de variable se fait simplement par convention; il est complètement facultatif et sert uniquement à indiquer que la variable contient un objet jQuery, comme dans votre exemple.
Cela signifie que lorsqu'une autre fonction jQuery doit être appelée sur l'objet, vous n'avez pas besoin de l'envelopper à $()
nouveau. Par exemple, comparez-les:
// 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
Avec le $
préfixe, les variables contenant déjà des objets jQuery sont instantanément reconnaissables et le code plus lisible, et élimine le double / multiple wrapping avec $()
.