據我所知,JavaScript需要使用關鍵字var
來定義變量,而jQuery允許使用$
符號來定義變量,我想知道當我使用jQuery定義變量時會帶來什麼附加好處,還是純粹偏好?爲什麼我會用另一種慣例?Javascript和jQuery中的變量命名約定
另外,下面的變量聲明有什麼區別?
var foo
var $oo
$foo
據我所知,JavaScript需要使用關鍵字var
來定義變量,而jQuery允許使用$
符號來定義變量,我想知道當我使用jQuery定義變量時會帶來什麼附加好處,還是純粹偏好?爲什麼我會用另一種慣例?Javascript和jQuery中的變量命名約定
另外,下面的變量聲明有什麼區別?
var foo
var $oo
$foo
的美元符號是不能定義一個變量。它是jQuery的簡稱。更準確地說$ === jQuery。 編輯:通常情況下,不是在變量定義中(如註釋中指定的CBroe)。
所以有些人將它用於變量聲明是純粹的偏好,在我看來是錯誤的。或者,也許他們有PHP背景,並習慣於從那裏的$ varName定義。
關於差異,你有區別:
var foo
和
foo
第一個是本地定義,而第二個是全球性的。
實施例:
function test() {
var a = 2;
b = 5;
}
test();
console.log(a); // undefined
console.log(b); // 5
_「這是jQuery的簡稱」_ - 不,在$ foo中它只是變量名的一部分。 (在'$(...)'中它引用了jQuery對象,是的。) – CBroe 2015-03-19 04:58:23
這就是我的意思,請閱讀以下行。 「所以有些人使用它來進行變量聲明是純粹的偏好,在我看來是一個誤導的事實。」也許我應該改寫一下嗎? – zozo 2015-03-19 04:59:49
由於OP使用'$ foo'作爲例子,可能會誤解......但不要挑剔,我只是想澄清它。至於在變量名稱中使用它,你認爲它是「誤導」的,我認爲當它用於表示一個變量實際上持有一個jQuery對象時它是有意義的。 'var $ elements = $('。selector')' – CBroe 2015-03-19 05:04:30
常見的是使用一個$在變量名的前面,當變量是一個jQuery對象。舉例來說,var $body = jQuery('body');
是讓其他開發人員閱讀代碼(以及您未來的自己)知道他們正在處理jQuery對象而不是直接處理body元素的一種方法。絕對是一種偏好,我會說決定什麼對你的團隊最有效,並堅持下去!
_「JavaScript需要使用var關鍵字定義變量」_ - 否,不一定。但是沒有'var'關鍵字,它們將始終是全局的,無論發生什麼初始化。 $ part本身並不「定義」一個變量,它只是變量_name_的一部分。 – CBroe 2015-03-19 04:57:05
請參閱http://stackoverflow.com/questions/1916584/jquery-variable-syntax – 2015-03-19 04:57:28
不要在變量名稱中使用'$'。這很可怕。我知道這是jQuery用戶慣例的一部分,但這是非常糟糕的。沒有必要。你應該有足夠明智的名字,你不需要'$'來知道它是一個jQuery對象。 – 2015-03-19 05:02:23