2010-05-21 14 views
15

Jaka jest różnica między tymi instrukcjami? Wiem, że "var $ test" deklaruje zmienną jquery, ale jaka jest różnica zmiennej jquery z ogólną zmienną javascript?

Odpowiedz

24

Nic. Bez różnicy. $ jest prawidłową postacią w identyfikatorze JavaScript, ale nie ma specjalnego znaczenia. W rzeczywistości, w specyfikacji ECMAScript 3 w rozdziale 7.6 stwierdza, że ​​

znak dolara ($) i podkreślenia (_) są dozwolone w dowolnym miejscu identyfikator . Znak dolara to przeznaczony do stosowania wyłącznie w wygenerowanym mechanicznie kodzie generowanym mechanicznie .

... chociaż wydarzenia prawdopodobnie sprawiły, że zalecenie stało się przestarzałe. Rzeczywiście, ostatnia specyfikacja ECMAScript 5 pomija ostatnie zdanie.

29

$test jest konwencja stosuje się do wskazania, że ​​ta zmienna jest obiektem jQuery można nazwać standardowe funkcje na nim podczas test może być standardowego elementu DOM i nie można wywołać funkcję val na nim na przykład.

Na przykład:

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

Można zrobić $test.text(); ale nie można zrobić test.text();

+0

To znaczy, nawet jeśli nie używać znaku „$”, czy nadal będę w stanie wywołać standardowe funkcje tego obiektu, prawda? –

+3

@Semem Ahmed: Tak, to tylko imię. Ma absolutnie ** nie ** znaczenie! Byłoby to samo, gdybyś zapytał, czy nazwy zmiennych zaczynające się od 't' są w jakiś sposób wyjątkowe. –

+0

Nigdy nie wiedziałem o tej konwencji, ale ma to wiele sensu! Dziękuję za wyjaśnienie, Felix. – malvim

2

nie ma różnicy między var $test i var test. ale zawsze dobrze jest wiedzieć, jakie dane znajdują się w Twojej zmiennej: (na przykład, jeśli ktoś inny chce zmodyfikować funkcję w kodzie bez konieczności czytania, lub musi konsoletować. logować swoje vary, aby wiedzieć, co to jest)

tutaj kilka przykładów:

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

ale również pracować jak ten

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

myślę co dezorientuje ty jest jquery $() forma.

jQuery jest w zasadzie funkcja ustawiona na nazwę zmiennej $:

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

ale nadal można używać $somethingelse jako zmiennej.

-1

Wypróbuj krytykę w JQuery.

Różnice między natywnym javascript a frameworkiem takim jak JQuery to zip - on istnieje.

Jeśli chcesz opanować javascript - pomiń JQuery.

Używam GMap ze względu na jego funkcje - nie jestem w stanie samodzielnie opracować funkcjonalności GMap.

Ale JQuery i extJS oferują tylko strukturę - nie ma możliwości funtionallall, że nie można zrobić samemu.

Mike

+3

-1: To jest odpowiedź na pytanie? – Kowser

Powiązane problemy