2010-05-21 7 views
15

quelle est la différence entre ces instructions? Je sais que "var $ test" déclare une variable jquery, mais quelle est la différence entre une variable jquery et une variable javascript générale?

Répondre

24

Rien. Aucune différence. $ est un caractère valide dans un identifiant JavaScript mais n'a pas de signification particulière. En fait, dans la spécification ECMAScript 3 dans la section 7.6, il précise que

Le signe dollar ($) et le trait de soulignement (_) sont autorisés partout dans un identifiant . Le signe dollar est destiné à être utilisé uniquement dans le code généré mécaniquement.

... même si les événements ont probablement rendu cette recommandation obsolète. En effet, la récente spécification ECMAScript 5 omet la dernière phrase.

29

$test est une convention utilisée pour indiquer que cette variable est un objet jQuery et vous pouvez appeler les fonctions standard sur tout en test pourrait être un élément standard DOM et vous ne pouvez pas appeler la fonction val à ce sujet par exemple.

Par exemple:

var $test = $('#someId'); 
var test = document.getElementById('#someId'); 

Vous pouvez faire $test.text(); mais vous ne pouvez pas faire test.text();

+0

Donc cela signifie que même si je ne l'utilise le signe « $ », je vais encore être en mesure d'appeler les fonctions standard sur cet objet, non? –

+3

@Sayem Ahmed: C'est juste un nom. Cela n'a absolument aucun sens! Ce serait la même chose si vous demandez si les noms de variables commençant par 't' sont quelque peu spéciaux. –

+0

Je n'ai jamais entendu parler de cette convention, mais cela a beaucoup de sens! Merci pour cette précision, Felix. – malvim

2

il n'y a pas de différence entre var $test et var test. mais il est toujours bon de savoir quel type de données est dans votre variable: (par exemple si quelqu'un d'autre veut juste modifier une fonction dans votre code sans avoir à lire, ou doit consoler.log vos vars pour savoir quoi dedans)

ici quelques exemples:

var arrTest = [1, 2, a, b, c], //Array 
objTest = {test: 1, test2: 2}, //Object 
strTest = "test", //String 
intTest = 4, //integer 
$test = $("#test") //jqueryObject 

mais il fonctionne également comme cette

var Test1 = [1, 2, a, b, c], //Array 
test2 = {test: 1, test2: 2}, //Object 
Test3 = "test", //String 
Test4 = 4, //integer 
$test = $("#test") //jquery Object 

je pense que ce que vous embrouille est la forme $() jquery.

Jquery est essentiellement une fonction définie sur le nom de la variable $:

var $ = function(e){ // the jquery magic } 

mais vous pouvez toujours utiliser $somethingelse comme variable.

-1

Essayez Critisism sur JQuery.

Les différences entre le javascript natif et un framework tel que JQuery sont zip - il coexiste.

Si vous souhaitez maîtriser javascript - ignorer JQuery.

J'utilise GMap en raison de ses fonctions - je ne suis pas capable de développer moi-même la fonctionnalité GMap. Mais JQuery et extJS offrent juste une structure - pas de fonctionnalité que vous ne pouvez pas faire vous-même.

Mike

+3

-1: Ceci est une réponse à quelle question? – Kowser

Questions connexes