2012-11-07 24 views
1

可能重复:
Declaring Multiple Variables in JavaScript差异上市变量在JavaScript

我想知道是否有在JavaScript(和JS库)在上市变量的差异。

var $this = $(this), 
    $body = $("body"), 
    $main-wrap = $("body > section.wrapper"); 

OR

var $this = $(this); 
var $body = $("body"); 
var $main-wrap = $("body > section.wrapper"); 

我一直认为,区别仅在于符号。第一个例子更短,执行速度可能更快。最近我做了一些测试,现在我不确定了。任何人都可以清除它?

执行速度,结果,方法有差异吗?

回答

0

我打破了使用多个var报表的习惯,当我开始使用jsLint。它总是抓住这一点,并表示用逗号分隔更快。

展望更多,似乎有许多来源同意这一点。

jsLint #scope

建议一个var语句来每个功能使用。

A List Apart

var语句定义一个或多个变量。有时你会看到代码,看起来像这样:

var image = document.getElementById("myImage"); 
var div = document.getElementById("myDiv"); 

此代码定义了两个变量,一个 右后其他。我经常在连续10个或更多 变量中看到这种模式。否则,人为地使用 逗号操作符膨胀的你 代码的大小,因为多个变种语句可以合并成一个:

var image = document.getElementById("myImage"), 
div = document.getElementById("myDiv"); 

此代码还定义了两个变量 ,并提供相同的初始化。但是,您已保存另一个变量将花费的三个 字节。三个字节看起来可能不是 ,但是如果您能够找到几十个地方,其中 目前有一个额外的var语句,则节省的成本实际上可以增加 。

然而,

这里有两个使用多个var语句从SO posters相当令人信服的理由。 and here

4

这不是jQuery,只是纯粹的JavaScript变量声明。

只要有区别,就没有一个。你可以获得的唯一提升速度是停止旋转多个jQuery对象,并重新引用现有的对象以进一步处理。例如

var body = $('body'), 
    wrapper = body.children('section.wrapper'); 

参见JavaScript variable definition: Commas vs. Semicolons

+0

编辑这个问题:)谢谢你的回答,我会看看其他人说什么。 –

+0

body.children('section.wrapper')更快:)只要选择器正文>部分 –

+0

@acrashik:良好的通话。仍然醒来(前咖啡),并浏览直接后代选择器。 ;-) –