JavaScript中的$ 1和var有什么区别?

时间:2012-02-22 17:56:42

标签: javascript var

JavaScript中 $ one var one 有什么区别?因为两者都有效。

例如:

$one = 'hello word!';

var one = 'hello word!';

工作示例:http://jsfiddle.net/rS9PR/

8 个答案:

答案 0 :(得分:3)

关于$没什么特别的;只是另一个变量名。使用“var”告诉解释器变量具有局部范围。没有var =>全球。即;从页面内的任何地方访问。

答案 1 :(得分:2)

var one保证变量设置为本地范围。

默认情况下,$one会将变量分配给全局范围。

答案 2 :(得分:0)

他们都是变量名。在JavaScript中,$字符是变量名称的有效字符。 var关键字只是在示例中设置变量名称的范围。

由于它在jQuery等不同的JavaScript库中的使用,它已经变得流行,但它是一个非常有效的变量名字符。

答案 3 :(得分:0)

没有区别,变量名称中可能包含$符号。您刚刚声明了两个不同的变量 - $oneone

upd:根据@yi_H评论 - 这两个变量实际上有不同的范围。 var关键字用于在当前范围内声明变量,但是如果省略var,则在全局命名空间中定义

答案 4 :(得分:0)

$ one在全局范围内定义,并且在每个函数中都可见。 var one在其封闭范围内定义,在外部不可见。

答案 5 :(得分:0)

有些人使用“$”作为前缀来表示jQuery对象,例如:

$text = $("#myTextElement");

答案 6 :(得分:0)

两个名称都是有效的标识符,没有区别。有关var关键字的使用,请参阅What is the purpose of the var keyword and when to use it (or omit it)?

答案 7 :(得分:0)

$中的$one并不意味着什么特别的。它只是另一个普通的JavaScript变量。在一些开发人员中有一个约定,其中带有$的前缀变量表示该变量包含一个jQuery对象。这纯粹是为了风格和可读性,并没有技术或语法上的影响。

当您从声明中省略var时,浏览器会将变量附加到全局对象:

foo = 'bar';
alert(window.foo); // 'bar'

对于任何拥有超过一小部分JavaScript(过去几年来一直在快速增长的类别)的网站,这会产生一些非常重要的影响。最佳做法是始终使用var声明您的变量,以防止以后出现许多问题。

有关变量范围的详细信息,请参阅:What is the scope of variables in JavaScript?