Javascript 带有jquery、全局命名空间的变量的$prefix

Javascript 带有jquery、全局命名空间的变量的$prefix,javascript,jquery,Javascript,Jquery,我知道这可能很明显……但当我在变量名前面加上“$”前缀时,jQuery到底在做什么呢。我知道这是在全局名称空间中放置变量,但为什么呢?这完全是错误的 $是一个普通对象(实际上是一个函数),恰好有一个短名称 $本身是一个全局变量(窗口对象的属性)以$开头的变量(例如var$myvar;)只是另一个变量,没有任何不同 编辑: 如果“前缀”是指: $(myvar) 这不是“前缀”。我想这叫“包装”。它“增强”了变量。您甚至可以“包装”窗口本身 它的作用与jQuery(myvar)相同jQuery是一

我知道这可能很明显……但当我在变量名前面加上“$”前缀时,jQuery到底在做什么呢。我知道这是在全局名称空间中放置变量,但为什么呢?

这完全是错误的

$
是一个普通对象(实际上是一个函数),恰好有一个短名称


$
本身是一个全局变量(
窗口
对象的属性)

$
开头的变量(例如
var$myvar;
)只是另一个变量,没有任何不同

编辑:

如果“前缀”是指:

$(myvar)
这不是“前缀”。我想这叫“包装”。它“增强”了变量。您甚至可以“包装”窗口本身


它的作用与jQuery(myvar)相同
jQuery
是一个函数(如果愿意,可以调用对象)。

在JavaScript
$
中是变量名中的有效字符。将
$
添加到变量没有什么特别的作用

var $a;
var a$b;
var $;
这些只是变量,没有特殊意义

jQuery只是创建了一个
窗口。$
引用了
窗口。jQuery
用于syntactic sugar:-)

您是否声明了一个名称前缀为
$
的变量

如果你这样写:

$test = 500;
然后是的,您正在使用名为
$test
的变量污染全局名称空间,该变量与任何其他变量都没有区别(
$
没有特殊效果)。但在JQuery中,您很可能会这样做:

$('test')

这只是一个简单的函数调用。函数名为
$
,参数为
'test'

您的意思是在执行以下操作时:

var $li = $("li");

您在
li
前面加了一个
$
。无论您如何调用变量,如果您想使用前缀
$
,这取决于您自己。如果在调试代码时知道$variableName是jQuery对象,它会对您有所帮助。

jQuery无法更改javascript语言的工作方式

有两种方法可以创建全局变量

globalVariable = ...

第一个不使用javascript严格模式

执行jquery.js时,它会将全局函数添加到窗口对象中 $和jQuery


它不能改变你的变量是局部变量还是全局变量,这取决于你。

谢谢。我之所以认为$prefixed变量被放置在全局名称空间中,是因为当我在Javascript控制台中设置断点时,我在“范围变量”选项卡的“全局”下看到了所有以$为前缀的变量。@ChristianBenincasa这可能是因为您是如何声明变量的,而不是它们的名称。
$(myvar)
被称为“调用函数”(人们有时称之为“包装”它为jQuery对象)<代码>$是一个函数:-P
window.globalVariable = ...