$ 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