循环中js与++的区别
通常这是用这种方法编写的for循环。对于(var i = 0;i < 20;i + +){
的…
}
但我看到有些人写这个
对于(var i = 0;i < 20;+ i i){
的…
}
这对循环的影响是什么
1。似乎没有什么区别。
但是,当分配使用,有一个差异。
var a=1;
var;
var=1;
var;
console.log(B,D); / / 1, 2
++首先应用A然后添加它
首先加上a,然后在a中应用
2。可能是C / C++时代的习惯。有人说,++我比我快,但事实上,这两个性能在JS是相似的。
至于具体的细节,规范是写在自加/减少自我运算符。
对于以前的情况—
unaryexpression + +:unaryexpression
让unaryexpression expr是评价结果。
让属性的旧值是数字(getValue(expr))。
returnifabrupt(属性的旧值)。
让价值是增加值1属性的旧值结果。
让地位是PutValue(expr,价值)。
returnifabrupt(状态)。
回归价值。
大致翻译:
1。expr等于当前的表达(++是结果的后面部分)
2。订单属性的旧值等于表达式转换为数字的结果
三.使用相同的规则+运算符,价值=属性的旧值+ 1
4。分配价值来表达
5。整个操作返回到价值
对于它背后的情况—
后缀式中:lefthandsideexpression + +
1。让LHS是lefthandsideexpression结果评价。
2。让属性的旧值是数字(getValue(LHS))。
3.returnifabrupt(属性的旧值)。
4,让价值是增加值1属性的旧值结果。
5。让地位是PutValue(LHS,价值)。
6.returnifabrupt(状态)。
7返回属性的旧值。
大致翻译:
1。LHS等于当前的表达(++前面部分)的结果
2。订单属性的旧值等于该转换数的结果
三.使用相同的规则+运算符,价值=属性的旧值+ 1
4。分配到该新
5。整个操作返回属性的旧值
正如你所看到的,两者之间的区别只是最后一步,整个操作是返回加一个或加一个。
for语句:
对于(var i = 0;i <;n;+ +)
最后一列只是自我强加的,并没有把这个值给任何人,因此从这个角度看,前面或后面放置的+符号是相同的。
三.事实上,没有什么区别,但是如果你想追求这个小效率问题,++我会更有效率。
事实上,它来自于C++的标准库。当我是一个迭代器,性病的容器,我是不是一个数字,我+ +生成更多的赋值操作,所以+我具有更高的性能。所以C++的人,我不是一个数值,喜欢用C++我节省开销。
以上是我+ + + +我介绍JS周期由萧边提出的区别的介绍,希望对你有帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。