Javascript / jQuery变量,使用var的正确方法是什么?
我很抱歉,如果这是一个愚蠢或容易的问题,但我是相当新的Javascript / jQuery。 在过去的一个月中,我真的开始深入研究脚本领域,并且看到了两种不同的,也许是三种人们在Javascript / jQuery中使用var
方式。
我使用var的方式就是这样,
var nav = $('nav');
nav.hide();
我见过一种非常常见的方式使用变种,
var nav = $('nav');
$(nav).hide();
从答案中,
var $nav = $('nav');
$nav.hide();
从我通过搜索Google学到的东西是你在变量里面输入的内容保存在那里以供以后使用。 然后我发现如果我在使用它时在var上写了$(),它会复制$()。 然而,这两种方式似乎都起作用,所以我知道它不会重复,因此可以说它是同样的事情。
有没有正确的方法来使用vars
或两者都相同,并没有关系?
我再次道歉,如果这是一个已知的答案,并会很高兴将其删除,如果有人可以告诉我原来的问题,但我找不到任何东西。
来自答案的很多信息,我没有标记为答案,但我发现它非常重要。
var element = document.createElement("div");
$("body").append(element);
$(element).hide();
在上面的例子中,$(element)是必须的,因为它需要一个DOM对象并将其转换为一个jQuery选择器。 jQuery函数只能用于jQuery选择器,所以你不能简单地做element.hide()。
$()
创建一个新的jQuery对象。 如果将一个jQuery对象保存到一个变量中,从它创建另一个jQuery对象是没有意义的,尽管它仍然有效。 您经常会看到人们将以前在$()
创建为jQuery对象的变量包装纯粹是由于不好的练习,或者忘记它已经是一个对象......或者不理解他们刚刚创建的东西
也许你可能看过
var $nav = $('nav');
$nav.hide();
使用$
前缀是一种常见的做法,表示该变量主要是用于代码可读性的jQuery对象
这两个变量都存储一个jQuery对象,它可以访问jQuery方法。 后一种方法不必要地尝试在另一个jQuery对象中重新包装该jQuery对象。 前一种方法是“正确的”,因为坦率地说,它更高效,更少。
我在很多地方看到过这个问题。 当人们不需要时,人们会使用很多美元。 有些人用它作为变量名称的装饰,这增加了混淆。
首先,没有jQuery变量,只有JavaScript变量,正如你所说的,变量存储信息。 当右边以$()开始时,你将jQuery函数的结果存储在变量中。 在绝大多数情况下,您要存储的内容称为jQuery选择器。
在var nav = $('nav')
,你要存储的是一个代表DOM中所有元素的选择器,这些元素是导航标签,也就是<nav></nav>
(或等价物)。
正如其他人已经提到的那样, $(nav)
正在存储选择器,并从中创建一个新的选择器。 它没有任何成就,并且是多余的,并且是一种很差的编程实践,即使它是普遍的编程实践。
但是,有一种类似的语法是合理的:
var element = document.createElement("div");
$("body").append(element);
$(element).hide();
在上面的例子中, $(element)
是必须的,因为它需要一个DOM对象并将其转换为一个jQuery选择器。 jQuery函数只能用于jQuery选择器,所以你不能简单地做element.hide()
。
正如我在顶部提到的,有些人也使用$作为它们的变量名称的装饰器,例如var $selector = $("nav")
。 $
左侧意味着什么 - 它只是一个变量名中的字符,但他们用它作为约定来提醒自己他们正在存储一个jQuery选择器。 我会避免它,只是因为它增加了混乱,但它在那里,所以我只是想提到它。
上一篇: Javascript/jQuery variable, what is the proper way to use a var?
下一篇: What is the correct way to check for string equality in JavaScript?