$one 和 var one 在 JavaScript 中有什么区别?因为两者都可以正常工作。
例如:
$one = 'hello word!';
var one = 'hello word!';
Working example: http://jsfiddle.net/rS9PR/
$one 和 var one 在 JavaScript 中有什么区别?因为两者都可以正常工作。
例如:
$one = 'hello word!';
var one = 'hello word!';
Working example: http://jsfiddle.net/rS9PR/
$ 没有特别的含义,它只是另一个变量名。使用 "var" 告诉解析器该变量具有本地作用域。没有 var => 全局。即; 在页面的任何位置都可以访问。
var one
确保变量被设置为局部作用域。
默认情况下,$one
将变量分配到全局作用域中。
它们都是变量名。在JavaScript中,$字符是一个有效的变量名字符。var关键字只是在你的示例中设置变量名的作用域。
$符号因其在不同的JavaScript库(例如jQuery)中的使用而变得流行,然而它也是一个完全有效的变量名字符。
没有区别,变量名中可以包含$
符号。您刚刚声明了两个不同的变量-$one
和one
。
更新:根据@yi_H的评论,这两个变量实际上具有不同的作用域。var
关键字用于在当前作用域中声明变量,但是如果省略var
,则会在全局命名空间中定义它。
$one被定义在全局作用域中,因此将在每个函数中可见。var one
被定义在其封闭作用域中,因此在外部不可见。
有些人使用"$"作为前缀来表示jQuery对象,例如:
$text = $("#myTextElement");
$
在 $one
中没有任何特殊含义。它只是另一个普通的 JavaScript 变量。一些开发者有一个惯例,用 $
作为前缀来表示变量持有了一个 jQuery 对象。这仅仅是为了风格和可读性,没有技术或语法上的影响。
当你省略一个声明中的 var
时,浏览器会将该变量附加到全局对象上:
foo = 'bar';
alert(window.foo); // 'bar'
这对于任何具有大量JavaScript的网站(这一类别在过去几年中迅速增长)都有相当重要的影响。最佳实践是始终使用var
声明变量,以防止后来出现许多问题。
请参见:JavaScript中变量的作用域是什么? 以获取有关变量作用域的更多详细信息。