2015-03-19 44 views
0

據我所知,JavaScript需要使用關鍵字var來定義變量,而jQuery允許使用$符號來定義變量,我想知道當我使用jQuery定義變量時會帶來什麼附加好處,還是純粹偏好?爲什麼我會用另一種慣例?Javascript和jQuery中的變量命名約定

另外,下面的變量聲明有什麼區別?

  • var foo
  • var $oo
  • $foo
+2

_「JavaScript需要使用var關鍵字定義變量」_ - 否,不一定。但是沒有'var'關鍵字,它們將始終是全局的,無論發生什麼初始化。 $ part本身並不「定義」一個變量,它只是變量_name_的一部分。 – CBroe 2015-03-19 04:57:05

+0

請參閱http://stackoverflow.com/questions/1916584/jquery-variable-syntax – 2015-03-19 04:57:28

+1

不要在變量名稱中使用'$'。這很可怕。我知道這是jQuery用戶慣例的一部分,但這是非常糟糕的。沒有必要。你應該有足夠明智的名字,你不需要'$'來知道它是一個jQuery對象。 – 2015-03-19 05:02:23

回答

1

的美元符號是不能定義一個變量。它是jQuery的簡稱。更準確地說$ === jQuery。 編輯:通常情況下,不是在變量定義中(如註釋中指定的CBroe)。

所以有些人將它用於變量聲明是純粹的偏好,在我看來是錯誤的。或者,也許他們有PHP背景,並習慣於從那裏的$ varName定義。

關於差異,你有區別:

var foo 

foo 

第一個是本地定義,而第二個是全球性的。

實施例:

function test() { 
     var a = 2; 
     b = 5; 
    } 

    test(); 
    console.log(a); // undefined 
    console.log(b); // 5 
+1

_「這是jQuery的簡稱」_ - 不,在$ foo中它只是變量名的一部分。 (在'$(...)'中它引用了jQuery對象,是的。) – CBroe 2015-03-19 04:58:23

+0

這就是我的意思,請閱讀以下行。 「所以有些人使用它來進行變量聲明是純粹的偏好,在我看來是一個誤導的事實。」也許我應該改寫一下嗎? – zozo 2015-03-19 04:59:49

+2

由於OP使用'$ foo'作爲例子,可能會誤解......但不要挑剔,我只是想澄清它。至於在變量名稱中使用它,你認爲它是「誤導」的,我認爲當它用於表示一個變量實際上持有一個jQuery對象時它是有意義的。 'var $ elements = $('。selector')' – CBroe 2015-03-19 05:04:30

1

常見的是使用一個$在變量名的前面,當變量是一個jQuery對象。舉例來說,var $body = jQuery('body');是讓其他開發人員閱讀代碼(以及您未來的自己)知道他們正在處理jQuery對象而不是直接處理body元素的一種方法。絕對是一種偏好,我會說決定什麼對你的團隊最有效,並堅持下去!