2013-10-07 67 views
0

为什么这个语法的JSLint complainig:的JSLint抱怨过数学运算符 “++” 语法

var myint; 
myint = 0; 

myint++; 

www.jslint.com响应:

意外的 '++'。 myint ++;

+4

如果你看看选项,有一个用于“容忍++和 - ”。你有它不容忍它。这是克罗克福德不喜欢的更挑剔的选择之一。 –

+0

是的,谢谢,我刚刚找到了这个选项。 – kstubs

回答

3

JSLint不喜欢++,它希望你使用myint += 1。这是非常有争议的,请参阅Why avoid increment ("++") and decrement ("--") operators in JavaScript?

虽然(在Web界面上,它位于“tolerate ...”之下),但有一个选项可以让它通过。

JSLint help

++(增量)和--(递减)运营商已经知道通过鼓励过度trickiness有助于糟糕的代码。它们仅次于有缺陷的体系结构,从而使病毒和其他安全威胁成为可能。另外,预先增加/增加后的混淆会产生非常难以诊断的错误的错误。有一个plusplus选项允许使用这些操作符。

1

@ bfavaretto的回答是正确的。如果你想允许这个(假设你使用非网页版),设置plusplustrue这项指令:

/*jslint plusplus: true */ 

Reference

2

Crockford的反对++--的说法是,他们是“太紧,太棘手,太神秘“(Javascript的第112页:好的部分)。你的旅费可能会改变。如果你想使用它们,或者如果你认为它们太混乱并妨碍可读性,则不要。

如果您不购买Crockford的论点,您可以在JSLint中关闭该规则。

+1

一些克罗克福德球迷低估了这一点,我认为? – bfavaretto

+0

我想是的。我从来没有说过我同意或不同意克罗克福德。 –

+0

我不明白它为什么神秘吗?这是一个在大量语言中具有相同行为的普通话务员... – Emissary