$ one和var one在JavaScript中有什麼區別?因爲兩者都有效。
實施例:
$one = 'hello word!';
var one = 'hello word!';
工作實施例:http://jsfiddle.net/rS9PR/
$ one和var one在JavaScript中有什麼區別?因爲兩者都有效。
實施例:
$one = 'hello word!';
var one = 'hello word!';
工作實施例:http://jsfiddle.net/rS9PR/
var one
保證了變量被設置爲本地作用域。
默認情況下,$one
會將變量分配給全局範圍。
它們都是變量名。在JavaScript中,$字符是變量名的有效字符。 var關鍵字只是在您的示例中將變量名稱設置爲範圍。
由於它在不同的JavaScript庫(如jQuery)中使用,$變得非常流行,但它是一個完全有效的變量名稱字符。
沒有區別,變量名可能包含$
登錄。您剛剛宣佈了兩個不同的變量 - $one
和one
。
upd:根據@yi_H評論 - 兩個變量實際上有不同的範圍。 var
關鍵字用於在當前作用域中聲明變量,但如果省略了var
,則它在全局名稱空間中定義
你錯過了'var'部分 – 2012-02-22 18:06:06
$ one在全局作用域中定義,並且將在每個函數中都可見。 var one
在其封閉範圍內定義,並且在外部不可見。
有些人用 「$」 作爲前綴,表示jQuery對象,如:
$text = $("#myTextElement");
沒有什麼特別之處$;只是另一個變量名稱。 「var」的使用告訴解釋器該變量具有局部範圍。無var =>全局。即;從頁面的任何地方訪問。
這兩個名稱都是有效的標識符,沒有區別。關於var關鍵字的使用,請參見What is the purpose of the var keyword and when to use it (or omit it)?
$one
中的$
並不意味着什麼特別。這只是另一個正常的JavaScript變量。在一些開發人員中有一個約定,其中前綴變量$
用於指示該變量包含jQuery對象。這純粹是爲了風格和可讀性,並沒有技術或語法上的影響。
當您從聲明中省略var
,瀏覽器將變量附加到全局對象:
foo = 'bar';
alert(window.foo); // 'bar'
這對於具有比JavaScript的一個微不足道的金額任何網站一些非常顯著影響(在過去幾年中這個類別一直在快速增長)。最佳做法是總是聲明您的變量var
以防止後來的一些問題。
有關變量範圍的更多詳細信息,請參閱:What is the scope of variables in JavaScript?。
將$放在變量的前面是jQuery的匈牙利表示法。請不要這樣做。 – Daff 2012-02-22 18:08:11
one ='hello word!'; // global scope, var one ='hello word!'; // local scope – 2012-02-22 18:15:46