JSLint(打开onevar标志)正在标记我的一些javascript代码,其中包含以下内容:
Problem at line 5 character 15: Too many var statements.
我很乐意解决这些错误,但我想知道,我是为了性能而做,还是因为这只是一种不好的做法,并且更有可能在我的javascript代码中引入错误.onevar旗帜背后的原因是什么?
我确实查看了var关键字的JSLint文档,但没有具体说明为什么同一函数中的多个var语句都不好.
这是一个例子的尝试.解释代码如何只从1个var语句中受益:
function Test(arg) {
var x = arg + 1,
y = cache.GetItem('xyz');
if (y !== null) {
// This is what would cause the warning in JSLint
var request = ajaxPost(/* Parameters here */);
}
}
Run Code Online (Sandbox Code Playgroud) 当我阅读那些很清楚并且由显然非常擅长的人编写的javascript代码时,我经常会看到这种模式
var x = some.initialization.method(),
y = something.els(),
z;
Run Code Online (Sandbox Code Playgroud)
这比写作有什么好处
var x = some.initialization.method();
var y = something.els();
var z;
Run Code Online (Sandbox Code Playgroud)
第二种格式更容易维护,因为每条线本身都存在.因此,您可以擦除一行或添加一行,而不必四处查看它是否是要初始化的第一个或最后一个变量.这也意味着源控制差异/合并将更好地工作.鉴于这些缺点,我猜测第一种格式有一些优势 - 但它是什么?当然它们执行相同,因为它与解析器相同.