我想知道JavaScript(和JS库)中的列表变量是否存在差异。
示例:
var $this = $(this),
$body = $("body"),
$main-wrap = $("body > section.wrapper");
或
var $this = $(this);
var $body = $("body");
var $main-wrap = $("body > section.wrapper");
我一直认为差异只在于符号。第一个示例更短,执行速度可能更快。最近我做了一些测试,现在我不再确定了。任何人都可以解决这个问题吗?
执行速度,结果,方法有区别吗?
答案 0 :(得分:4)
这不是jQuery只是简单的JavaScript变量声明。
就差异而言,没有一个。您可以获得的唯一速度增加是停止旋转多个jQuery对象并重新引用现有对象以进行进一步处理。 e.g。
var body = $('body'),
wrapper = body.children('section.wrapper');
答案 1 :(得分:0)
当我开始使用jsLint时,我打破了使用多个var
语句的习惯。它总是抓住它,并说用逗号分隔会更快。
进一步研究,似乎有许多消息来源同意这一点。
建议每个函数使用一个var语句。
来自A List Apart:
var语句定义一个或多个变量。有时您会看到如下代码:
var image = document.getElementById("myImage");
var div = document.getElementById("myDiv");
此代码定义了两个变量,一个 紧接着另一个。我经常看到10个或更多的这种模式 变量连续。这样做会人为地夸大你的体型 代码,因为多个var语句可以使用a组合成一个 逗号运算符:
var image = document.getElementById("myImage"),
div = document.getElementById("myDiv");
此代码还定义了两个变量 并提供相同的初始化。但是,你已经保存了三个 另一个var会有成本的字节。可能看起来不是三个字节 像一个大问题,但如果你能找到几十个地方 目前有一个额外的var语句,节省的确可以添加 起来。
然而,
这是使用SO posters中的多个var
语句的两个相当令人信服的理由。 and here