在JavaScript中增加变量的其他方法
可能重复:在JavaScript中增加变量的其他方法,javascript,Javascript,可能重复: 我是道格拉斯·克罗克福德及其优秀著作的忠实粉丝。在将任何代码签入到我们的存储库之前,我也会每小时使用他的工具,这是很有道理的 在通过JSLint运行代码时,我注意到的一点是,它坚持认为++增量运算符在某种程度上是邪恶的。我知道我可以关闭某些规则,但那是作弊;)。Crockford在JS:TGP的第112页提到了他的不喜欢 在我自己的实践中,我观察到,当我使用++和-,我的代码往往过于紧凑,过于复杂,过于神秘。所以,作为一个纪律问题,我不再使用它们了。因此,我认为我的编码风格变得更加
我是道格拉斯·克罗克福德及其优秀著作的忠实粉丝。在将任何代码签入到我们的存储库之前,我也会每小时使用他的工具,这是很有道理的 在通过JSLint运行代码时,我注意到的一点是,它坚持认为++增量运算符在某种程度上是邪恶的。我知道我可以关闭某些规则,但那是作弊;)。Crockford在JS:TGP的第112页提到了他的不喜欢 在我自己的实践中,我观察到,当我使用++和-,我的代码往往过于紧凑,过于复杂,过于神秘。所以,作为一个纪律问题,我不再使用它们了。因此,我认为我的编码风格变得更加清晰 这一切都很可爱,但他没有给出任何他现在编码方式的例子。我猜他在做一些类似
var i;
i = 0;
i = i + 1;
同样,很好,但是我在我的JS代码中有一些基本的“for循环”,就像我想象中的很多人一样,我一直使用标准语法
for (i = 0; i < myArray.length; i++) {
// Loop Stuff
}
(i=0;i
//循环材料
}
我错过什么了吗?什么是最干净和/或最好的递增/递减方式?我认为这是一个相当有争议的问题,我个人坚持循环中的
I++
。当然,您可以在循环语句中将其替换为i=i+1
,以完全符合JSLint
在JavaScript中,除了递增和递减数值,没有真正的替代方法。通常可以使用
Array.forEach()
和/或Object.keys()
来防止数值索引。在C/C++中,这一点很重要,特别是对于任意迭代器和增量前/后语义。另外,随机访问与前向迭代器
在Javascript中,它更多地是关于美学的。除非你在处理字符串<代码>“1”+1为“11”
我想说,++I是一个值得遵循的习惯用法
JSLint是错误的。要通过JSLint,我现在总是这样做:
for (var i = 0; i < myArray.length; i+=1) {
// Loop Stuff
}
for(var i=0;i
就我个人而言,我看不出+/-运算符的递增和递减有什么错。而像i=i+1
对于新的程序员来说可能更容易,一旦你知道了操作符代表什么,这种做法就不是火箭科学了。关于循环,一个原始想法是使用这种循环来避免各种数字:
var a = [];
for (var i in " ")
a.push("Loop iteration here");
alert(a.join("\n"));
表示迭代字符串,在上面的示例中,迭代次数等于字符串长度-5
实时测试用例:我在自动递增/递减运算符中看到的唯一棘手的事情(我很惊讶这里没有人指出这一点)是前缀(++I)和后缀(I++)版本之间的差异。我还认为,一般来说,自动递增/递减运算符的效率稍高一些。除此之外,我认为选择主要基于美学,尤其是javascript。FWIW,
I+=1
也是一个选项…@gnur-你说得对;我道歉。我在发帖前搜索时错过了这一次。请根据需要删除。我想我在JS中找不到+=
运算符。或者我遗漏了什么。我更喜欢I++
而不是I++=1
,因为它在循环中更惯用。@Talha Ahmed Khan看到原始想法:是的,更可读性:见鬼,不,想象一下当你开始时试图理解这一点。。同意@gnur-非常有创意,但我看不出我们在工作中通过了任何代码审查@毫无疑问,gnuri++
是可读性最强、效率最高的。但是,由于有些人有奇怪的突发奇想,我的想法就是为了达到这个目的——对奇怪的突发奇想采取奇怪的伎俩。