循环中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周期由萧边提出的区别的介绍,希望对你有帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。