2010-05-21 161 views
15

這些語句有什麼區別?我知道「var $ test」聲明瞭一個jQuery變量,但是具有一般javascript變量的jquery變量有什麼區別?

回答

24

沒有。沒有不同。 $是JavaScript標識符中的有效字符,但沒有特殊含義。事實上,在7.6節中的ECMAScript 3規範它指出

美元符號($)和下劃線 (_)在一個 標識符的任何地方允許的。美元符號爲 ,僅用於機械地生成 生成的代碼。

...雖然事件現在可能使該建議過時。的確,最近的ECMAScript 5規範忽略了最後一句話。

29

$test是用來表示這個變量是一個jQuery對象的公約,並且可以調用的標準功能就可以了,而test可能是一個標準的DOM元素,你不能調用val功能就可以了,例如。

例如:

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

你可以做$test.text();,但你不能做test.text();

+0

因此,這意味着即使我不使用「$」符號,我仍然能夠調用該對象的標準功能,對不對? – 2010-05-21 09:33:50

+3

@Sayem Ahmed:對,這只是一個名字。它絕對沒有**的含義!如果你問是否以't'開頭的變量名稱是特殊的,那也是一樣的。 – 2010-05-21 09:35:11

+0

我從來不知道這個約定,但它確實很有道理!謝謝你的澄清,費利克斯。 – malvim 2010-12-01 19:28:24

2

var $testvar test之間沒有什麼區別。但它總是很好的知道你的變量中有什麼樣的數據:(例如,如果別人只是想在你的代碼中修改一個函數而不必閱讀,或者不得不console.log你的變量來知道它是什麼)

這裏一些例子:

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

,但它也將這樣的工作

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

我想你混淆是$()形式的jQuery。

jQuery是基本的變量名稱$設置功能:

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

,但你仍然可以使用$somethingelse作爲變量。

-1

嘗試對JQuery進行批評。

原生JavaScript和JQuery之類的框架之間的區別是zip - 它是共存的。

如果你想掌握JavaScript - 跳過JQuery。

我使用GMap是因爲它的功能 - 我無法自己開發GMap功能。

但JQuery和extJS只是提供結構 - 沒有功能,你不能自己做。

邁克

+3

-1:這是什麼問題的答案? – Kowser 2011-07-28 15:58:20

相關問題