我正在尝试组合各种代码,因此我想提前声明i
的开头。
OLD
var i,
max_i = 4;
for (i = 2; i<= max_i; i += 1)
{
//things
}
NEW
var i = 2,
max_i = 4;
for (; i<= max_i; i += 1)
{
//things
}
问题是我在JSLint中遇到了各种错误
在这两种情况下代码都可以正常运行。
答案 0 :(得分:1)
for (i; i<= max_i; i += 1)
{
//things
}
答案 1 :(得分:0)
JSLint可以帮助您编写更好的代码,对它有信心,而不是品味或其他。
它抱怨,因为没有初始化for()
被认为是丑陋的(糟糕的风格)。
你应该像往常一样初始化它。我也会尽量不定义变量但声明它们,然后如下所示初始化它们。我现在也会使用"use strict"
。不这样做有点不愉快。外部函数是为了避免全局变量和非函数范围的代码:
/*jslint for */
(function () {
"use strict";
var i;
var max_i;
max_i = 4;
for (i = 2; i <= max_i; i += 1)
{
// things
}
}());
答案 2 :(得分:-2)
您可以预先声明并初始化i
,但您仍必须将其设置为循环配置中的循环变量。而且,如果你在循环配置中初始化它更清楚,而不是上面因为调试会更容易。
var i , max_i = 4;
for (i = 2; i <= max_i; i++) {
//things
}
此外,最好始终将开口花括号(}
)放在与其定义的语句相同的行上,因为在JavaScript中存在某些情况,将其放在下一行可能会导致由于自动分号插入导致代码中的错误。
最后,要将值增加1,您可以使用++
unaray运算符,而不是+=1
。