2010-05-21 10 views
15

Was ist der Unterschied zwischen diesen Aussagen? Ich weiß, dass "var $ test" eine jquery-Variable deklariert, aber was ist der Unterschied zwischen einer jquery-Variablen und einer allgemeinen JavaScript-Variablen?

Antwort

24

Nichts. Kein Unterschied. $ ist ein gültiges Zeichen in einer JavaScript-Kennung, hat jedoch keine besondere Bedeutung. In der Tat, 7,6 in der ECMAScript 3-Spezifikation in Abschnitt heißt es, dass

Das Dollarzeichen ($) und das Unterstreichungs (_) sind überall in einer Kennung erlaubt. Das Dollarzeichen ist , das nur für die Verwendung in mechanisch generierten Code vorgesehen ist.

... obwohl Ereignisse haben jetzt wahrscheinlich, dass die Empfehlung obsolet. In der jüngsten ECMAScript 5-Spezifikation fehlt der letzte Satz.

29

$test ist eine Konvention verwendet, um anzuzeigen, dass diese Variable ein jQuery-Objekt ist und Sie können es die Standardfunktionen aufrufen, während test ein Standard-DOM-Element sein könnte, und Sie können die val Funktion es zum Beispiel nicht nennen.

Zum Beispiel:

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

Sie können $test.text(); tun, aber Sie können test.text();

+0

Das heißt also, auch wenn ich das „$“ Zeichen nicht verwenden, werde ich noch in der Lage sein, auf diesem Objekt die Standardfunktionen zu nennen, nicht wahr? –

+3

@Sayem Ahmed: Richtig, es ist nur ein Name. Es hat absolut ** keine ** Bedeutung! Es wäre dasselbe, wenn Sie fragen, ob Variablennamen, die mit "t" beginnen, irgendwie speziell sind. –

+0

Ich wusste nie über diese Konvention, aber es macht sehr viel Sinn! Danke für diese Klarstellung, Felix. – malvim

2

gibt es keinen Unterschied zwischen var $test und var test nicht tun. aber es ist immer gut zu wissen, welche Art von Daten in Ihrer Variablen ist: (zum Beispiel wenn jemand anderes nur eine Funktion in Ihrem Code ändern möchte, ohne zu lesen oder console.log Ihre Vars zu wissen, was in ihr ist)

hier einige Beispiele:

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

aber es wäre auch wie diese

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

arbeiten ich denke, was verwirrt Sie die jquery $() Form ist.

JQuery ist im Grunde eine Funktion auf dem Variablennamen gesetzt $:

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

aber immer noch $somethingelse als Variable verwenden kann.

-1

Versuchen Sie Kritik an JQuery.

Die Unterschiede zwischen nativem JavaScript und einem Framework wie JQuery ist zip - es koexistiert.

Wenn Sie JavaScript beherrschen wollen - überspringen Sie JQuery.

Ich benutze GMap wegen seiner Funktionen - ich bin nicht in der Lage, GMap-Funktionalität selbst zu entwickeln.

Aber JQuery und extJS bietet nur Struktur - keine Funktionalität, die Sie nicht selbst tun können.

Mike

+3

-1: Dies ist eine Antwort auf welche Frage? – Kowser

Verwandte Themen