博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
++i和i++的区别
阅读量:6845 次
发布时间:2019-06-26

本文共 682 字,大约阅读时间需要 2 分钟。

++i和i++区别在于运算顺序和结合方向。

 
js中有两种自加运算,其运算符均为++,功能为将运算符自加1.
其中:
++VAR被称为前自加,其后面的变量执行自加操作,其运算为,先执行自加操作,再引用VAR值。
VAR++被称为后自加,其前面的变量执行自加操作,其运算为,先引用VAR值,再进行自加操作。
 
如果自加语句独立成为一个单独的语句,那么前后自加是完全相同的。
比如单独的一行
a++;和++a;是一样的。
再比如,常见的
for
循环:
for
(i = 0; i < 100; i ++)
for
(i = 0; i < 100; ++i)
这里用到的++i和i++是完全相同的,没有区别。
 
当运算变量本身值会在自加语句中,同时执行其它操作,二者就有区别了。
比如
var 
i =0;
while
(i++<10);
i会先和10比较大小,然后执行自加。这样当i=10时,退出循环,再执行一次自加,退出后i值为11。
而如果写成
while
(++i<10);
是先执行自加,然后再与10比较。这样在i=9时,先自加,得到i=10,然后比较就会退出循环了。这种情况下,退出后i值为10。
 
再举一个例子。
var 
a, i = 10;
a = i ++; 
//这里i要先赋值,再自加。语句执行后a=10, i = 11;
而如果写成:
var 
a, i = 10;
a = ++i; 
//这里i要先自加,再赋值。语句执行后a=11, i = 11;

转载于:https://www.cnblogs.com/webwangjie/p/9166424.html

你可能感兴趣的文章
DRM
查看>>
android:layout_gravity 和android:gravit的区别?
查看>>
数据库设计(2/9):域,约束和默认值(Domains, Constraints and Defaults)
查看>>
使用 LocalReport 对象进行打印
查看>>
[SLAM]2D激光扫描匹配方法
查看>>
省市区 - 三级联动通用化模块组件
查看>>
浅谈深度学习中潜藏的稀疏表达
查看>>
Android双击返回键退出Activity的两种方法
查看>>
正则表达式总结 java 等
查看>>
delphi query阻塞执行 长时间执行sql的解决办法
查看>>
maven打包异常
查看>>
转: Android开发的网络抓包
查看>>
webservice(CXF)基于3.1.1版本实例
查看>>
linux常用命令集锦
查看>>
Web.Config 对静态文件 js css img 的客户端缓存策略
查看>>
3轮全向轮正解---41
查看>>
C#启动一个外部程序(1)-WinExec
查看>>
python2.0_day21_bbs系统评论自动加载+文章创建
查看>>
广告联盟常用的防作弊手续
查看>>
基于 CoreText 实现高性能 UITableView
查看>>