为什么我们不应该在JavaScript中使用++?

Bal*_*ark 13 javascript

可能重复:
为什么要避免在JavaScript中增加("++")和减少(" - ")运算符?

我在一些地方听说不建议在javascript中使用++& - 我们应该使用+ = 1或 - = 1代替.谁能澄清为什么对我?

tbr*_*yen 36

因为道格拉斯·克罗克福德对于某些事情可能会或可能不会产生混淆有自己的看法.它们很好用,JSLint只是在表达自己的观点.


fro*_*die 16

如果我提出相反的建议,任何人都会介意......?

请尽可能使用增量(++)和减量( - )运算符.更直截了当.(这就是他们的目的.)

  • @David Hedlund - 是的.存在潜在的混淆.但是,增量运算符是递增的.它的目的就是直截了当.使用"+ = 1"或"= var + 1"在我看来比如想要加倍而不是x*来做x + x.编码你的意思. (2认同)

Gab*_*art 9

Crockford等人的原因.不鼓励使用++/ --是否会引入副作用.实际上没有理由使用i+=1;而不是i++;因为两者都是单个语句,但是有很多理由让语句只做一件事并且++很容易违反该规则.

劝阻使用的++手段,我们没有保持之间的区别i++,并++i在我们的头脑.这意味着我们不太可能尝试以巧妙但令人困惑的方式使用它们.出于这些原因,最好不要使用它们,imo.


Dan*_*llo 7

我唯一一次看到这些操作员气馁的是Douglas Crockford的 JavaScript:The Good Parts一书.

引自"坏零件"附录:

增量和减量运算符使得以极其简洁的风格编写成为可能.在诸如C语言之类的语言中,它们可以编写可以执行字符串复制的单行代码:

for (p = src, q = dest; !*p; p++, q++) *q = *p;
Run Code Online (Sandbox Code Playgroud)

他们还鼓励编程风格,事实证明,它是鲁莽的.大多数缓冲区溢出错误导致了可怕的安全漏洞,这是由于这样的代码.

在我自己的实践中,我观察到当我使用时++,--,我的代码往往太紧,太神秘.所以,作为纪律问题,我不再使用它们了.我认为结果,我的编码风格变得更加清晰.

另外,引用JSLint文档(他编写的代码质量工具):

已知++(递增)和--(递减)运算符通过鼓励过多的欺骗来导致错误的代码.它们仅次于故障架构,可以实现病毒和其他安全威胁.有一个plusplus选项禁止使用这些运算符.

他真的不喜欢这些经营者......但是来吧!我认为我们仍然可以使用++--运算符而无需编写神秘的代码.我用它们,我喜欢它们.每个人都使用它们.

请注意,虽然JSLint可以选择禁止这些运算符,但默认情况下不启用此选项.

  • 说得好.在我看来,克罗克福德正在把枪指向他脚下的洞.或者也许那个稻草人做到了...... (6认同)

Chr*_*ore 5

我能想到的唯一原因是,与您编写的任何其他代码(html ??)相比,您的Javascript更容易被白痴编辑。

所以对菜鸟来说

x=x+1 ;
Run Code Online (Sandbox Code Playgroud)

x++;
Run Code Online (Sandbox Code Playgroud)

与经验丰富的程序员打交道时,这真的没有关系。