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

3

$onevar one 在 JavaScript 中有什么区别?因为两者都可以正常工作。

例如:

$one = 'hello word!';

var one = 'hello word!';

Working example: http://jsfiddle.net/rS9PR/


1
在jQuery中,将$放在变量前面是匈牙利命名法。请不要这样做。 - Daff
one = '你好,世界!'; //全局作用域var one = '你好,世界!'; //局部作用域 - Sam Arul Raj T
8个回答

3

$ 没有特别的含义,它只是另一个变量名。使用 "var" 告诉解析器该变量具有本地作用域。没有 var => 全局。即; 在页面的任何位置都可以访问。


2

var one 确保变量被设置为局部作用域。

默认情况下,$one 将变量分配到全局作用域中。


0

它们都是变量名。在JavaScript中,$字符是一个有效的变量名字符。var关键字只是在你的示例中设置变量名的作用域。

$符号因其在不同的JavaScript库(例如jQuery)中的使用而变得流行,然而它也是一个完全有效的变量名字符。


0

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

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


0

$one被定义在全局作用域中,因此将在每个函数中可见。var one被定义在其封闭作用域中,因此在外部不可见。


0

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

$text = $("#myTextElement");

0

0

$$one 中没有任何特殊含义。它只是另一个普通的 JavaScript 变量。一些开发者有一个惯例,用 $ 作为前缀来表示变量持有了一个 jQuery 对象。这仅仅是为了风格和可读性,没有技术或语法上的影响。

当你省略一个声明中的 var 时,浏览器会将该变量附加到全局对象上:

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

这对于任何具有大量JavaScript的网站(这一类别在过去几年中迅速增长)都有相当重要的影响。最佳实践是始终使用var声明变量,以防止后来出现许多问题。

请参见:JavaScript中变量的作用域是什么? 以获取有关变量作用域的更多详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接