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

时间:2010-07-13 15:12:44

标签: javascript

  

可能重复:
  Why avoid increment (“++”) and decrement (“--”) operators in JavaScript?

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

8 个答案:

答案 0 :(得分:36)

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

答案 1 :(得分:16)

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

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

答案 2 :(得分:9)

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

不鼓励使用++意味着我们不必在头脑中保持i++++i之间的区别。这意味着我们不太可能尝试以巧妙但令人困惑的方式使用它们。出于这些原因,最好不要使用它们,imo。

答案 3 :(得分:7)

我唯一一次看到这些操作员不鼓励就在Douglas Crockford's JavaScript: The Good Parts本书中。

引自“不良部分”附录:

  

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

for (p = src, q = dest; !*p; p++, q++) *q = *p;
     

他们还鼓励编程风格,事实证明,它是鲁莽的。大多数缓冲区溢出错误都会造成严重的安全漏洞,这是由于这样的代码。

     

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

此外,引用JSLint documentation(他撰写的代码质量工具):

  

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

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

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

答案 4 :(得分:4)

我能想到的唯一原因是,你的Javascript比你写的任何其他代码更容易被蠢人编辑(html ??)。

所以对一个菜鸟,

x=x+1 ;

更具可读性
x++;

在与经验丰富的程序员打交道时,这无所谓。

答案 5 :(得分:3)

使用++ / --可以限制js缩小选项,因为它们的含义对空格非常敏感。根据minifier,它甚至可能会在工作代码中引入错误。 Crockford解释(在警告部分)here

答案 6 :(得分:2)

我能想到的唯一理由是清晰度。您不必担心以下情况:

var result = ++i;

或者:

var result = i++;

答案 7 :(得分:0)

使用++,是标准的并且有很好的存在感。