我正在与在jQuery中声明变量时从不使用var的开发人员合作。类似的东西:
$x = "hello";
$y = "world";
$a = x + " " + y;
jQuery对此没有任何问题,他已经做了一段时间了。我一直使用var:
var x = "hello";
var y = "world";
var a = x + " " + y;
我们遇到了一个问题,其中美元符号引起了一个问题(这是一年前所以我无法回想起这个问题)。
有没有人知道或了解两者之间的区别以及为什么一个更好或应该用于另一个?
我已经完成了一些Google搜索,但他们都在讨论var $x; vs var x;
答案 0 :(得分:4)
使用美元符号并不是var
的替代品。变量名中的$
与任何其他字符相同。 $
通常附加到包含jQuery对象的变量。即:
var el = document.getElementById('id');
对战:
var $el = $('#id');
因此,它主要用于区分。它对您的脚本的执行没有任何影响。
参考文献中的 var
和$
完全不相关。事实上,在全球范围内:
var $el = $('#id');
与
相同$el = $('#id')
答案 1 :(得分:0)
美元符号没有做任何特别的事情,它只是变量名称的一部分。
在没有var
makes a global variable的情况下声明变量。
答案 2 :(得分:0)
$x = "hello";
$y = "world";
$a = x + " " + y;
这段代码错了。 <{1}}和x
未定义。
实际上y
并未声明$x
。 x
$x
与<{1}} 相同<{1}}
var $x
是一个变量名,如任何其他名称
你可以写:
var x
它与以下内容相同:
$x
答案 3 :(得分:0)
对于全局定义的变量没有var
通常不会导致问题,当使用具有相同名称但不同函数/字符串的变量时,您应该在另一个范围内使用var声明它以防止它超过原始的全球性。
$x = "hi#1";
alert($x); //alerts hi#1 as $x is declared globally
function hi(){
var $x = "hi#2";
alert($x);
}
hi(); //alerts hi#2 as $x within the function scope is hi#2
alert($x); //alerts hi#1 the previous $x was defined within the scope.
function hi3(){
$x = "hi#3";
}
hi3(); //replaces global vairiable $x to hi#3
alert($x); //alerts hi#3