![](/img/trans.png)
[英]In JavaScript, what is the difference between var a=5. and var a=5?
[英]What is the difference between $one and var one in JavaScript?
JavaScript中的$ 1和var有什么區別? 因為兩者都有效。
例:
$one = 'hello word!';
var one = 'hello word!';
工作示例: http : //jsfiddle.net/rS9PR/
關於$沒什么特別的; 只是另一個變量名。 使用“var”告訴解釋器變量具有局部范圍。 沒有var => global。 即; 從頁面內的任何位置訪問。
var one
保證變量設置為local scope。
默認情況下, $one
會將變量分配給全局范圍。
它們都是變量名。 在JavaScript中,$字符是變量名稱的有效字符。 var關鍵字只是在示例中設置變量名稱的范圍。
由於它在jQuery等不同的JavaScript庫中的使用,$已經變得流行,但是它是一個非常有效的變量名字符。
沒有區別,變量名稱可能包含$
符號。 您剛剛聲明了兩個不同的變量 - $one
和one
。
upd:根據@yi_H comment-這兩個變量實際上有不同的范圍。 var
關鍵字用於在當前范圍內聲明變量,但是如果省略var
,則在全局命名空間中定義它
$ 1在全局范圍內定義,並且在每個函數中都可見。 var one
在其封閉范圍內定義,在外部不可見。
有些人使用“$”作為前綴來表示jQuery對象,如:
$text = $("#myTextElement");
兩個名稱都是有效的標識符,沒有區別。 對於var關鍵字的使用,請參閱var關鍵字的用途是什么以及何時使用它(或省略它)?
1 $
中的$one
並不意味着什么特別的。 它只是另一個普通的JavaScript變量。 在一些開發人員中有一個約定,其中帶有$
的前綴變量表示該變量包含jQuery對象。 這純粹是為了風格和可讀性,並沒有技術或語法上的影響。
當您從聲明中省略var
,瀏覽器會將變量附加到全局對象:
foo = 'bar';
alert(window.foo); // 'bar'
這對於任何擁有超過一小部分JavaScript(在過去幾年中一直在快速增長的類別)的網站具有一些非常重要的意義。 最佳做法是始終使用var
聲明變量,以防止以后出現許多問題。
請參閱: JavaScript中的變量范圍是什么? 有關變量范圍的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.