为什么人们使用i = i + 1而不是i ++?

时间:2011-09-05 23:58:14

标签: javascript operators

我已经看到了许多循环和增量。而不是做i + +他们做i + = 1.这是为什么?

6 个答案:

答案 0 :(得分:15)

个人偏好和风格。

答案 1 :(得分:9)

并非所有语言都有++运算符(python,for one)......可能这些人来自其中一种语言的背景。也有些人认为i++不是很清楚,特别是因为某些语言对i++++i的处理方式不同。

答案 2 :(得分:3)

防止过度狡猾。至少这就是克罗克福德所说的。

答案 3 :(得分:3)

一般原因是有两种不同版本的增量表现不同

var i = 0;
1 == ++i // true

var i = 0;
1 == i++; // false

++i转换为“递增i,然后评估”,而i++转换为“评估i,然后递增

当您将这些表达式编写为i = i + 1;时,很清楚程序员的意图是什么,并且更容易在代码中找到错误。这与人们写“ yoda clauses ”的原因相同,如

if(6 == x){
    //. . .
}

因为如果你不小心做了

if(6 = x){
    //. . .
}

更容易发现错误

答案 4 :(得分:2)

i = i + 1更容易用英语解码。 i++虽然完全正确但在初学者阅读代码时不能很好地翻译。程序员可能试图让初学者更容易理解他们的代码,或者可能只是不想过分关注语法。没有良好的理由使用其中一个。

答案 5 :(得分:0)

有些人发现i = i + 1i += 1的描述性比i++更具描述性。这只是编码风格和可读性的问题。在大多数当前语言中,不同方式之间根本没有性能差异。

++--运算符存在一些可读性问题,但主要是当它们与其他运算符一起使用时,它们本身使用时并不是真正的问题。例如++x+-++y+-z++之类的表达式是完全有效的,但很难看出它实际上做了什么。由于操作员在某些情况下会导致可读性问题,因此有些人认为应该始终避免这些问题。