for循环中++i和i++的区别
2024-10-19 12:41:38
语法
for (语句1; 语句2; 语句3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行(这就是循环中的++i和i++结果一样的原因,但是性能不一样,稍后解释)
语句1 (同上面语法中的 语句1)
语句1 是可选的,也就是说不使用语句1 也可以。
var i=2,len=5;
for (; i<len; i++){
document.write(cars[i] + "<br>");
}
也可以在语句1 中初始化任意(或者多个)值:
var arr = [1,2,3]
for (var i=0,len=arr.length; i<len; i++){
document.write(cars[i] + "<br>");
}
语句2 (同上)
通常语句 2 用于评估初始变量的条件。
语句 2 同样是可选的。
如果语句 2 返回 true,则循环再次开始,如果返回 false,则循环将结束。
如果您省略了语句 2,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃
语句3 (同上)
通常语句 3 会增加初始变量的值。
语句 3 也是可选的。
语句 3 有多种用法。增量可以是负数 (i--),或者更大 (i=i+15)。
语句 3 也可以省略(比如当循环内部有相应的代码时):
var i=0,len=arr.length;
for (; i<len; ){
document.write(cars[i] + "<br>");
i++;
}
++i 和 i++ 的区别
var i = 10;
console.log(i++); //10 ,先引用原值,然后加1
等价于:
var i= 10;
console.log(i); //先输出i
i++; //然后加1
var i = 10;
console.log(++i); //11 , 这次是先加1,然后输出
总结下:++在前下自加后运算;++在后先运算后自加
for循环中++i 和 i++ 的区别
根据上面的for循环的语法定义 ++i 和 i++的结果是一样的,都要等代码块执行完毕才能执行语句3,但是性能是不同的。在大量数据的时候++i的性能要比i++的性能好原因:
i++由于是在使用当前值之后再+1,所以需要一个临时的变量来转存。
而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能
最新文章
- ios 开发中使用SVN管理代码
- 这些HTML、CSS知识点,面试和平时开发都需要 No10-No11
- C#使用读写锁三行代码简单解决多线程并发写入文件时线程同步的问题
- 每天一个Linux命令(3):pwd命令
- C# winform调用浏览器打开页面方法分享,希望对大家有帮助
- [Python]解决python链式extend的技巧
- Python 编程规范-----转载
- R语言学习笔记——Base Graphics
- 跟着百度学PHP[7]会话控制(session与cookie) 1.cookie的设置
- 使用FindControl(";id";)查找控件 返回值都是Null的问题
- nginx log format
- TypeScript教程3
- 斯坦福HAI—细数全球18件AI大事记
- 10.6-uC/OS-III内部任务(统计任务 OS_StatTask())
- 3 爬虫解析 Xpath 和 BeautifulSoup
- JavaWeb:一个Servelt多个请求
- 为训练深度OCR 图像,生成文本图像
- Mac下配置NDK环境
- IE11上登陆oracle OEM时报:“证书错误,导航已阻止”且无继续浏览此网站(不推荐)的错误
- CentOS查看占用端口并关闭
热门文章
- Java 创建PDF文件包的2种方法
- Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复
- 暑假自学java第八天
- Spring:Spring优势——分层架构简介
- Dubbo:dubbo管理界面安装
- Linux:linux下解压*压缩tar.xz、tar、tar.gz、tar.bz2、tar.Z、rar、zip、war等文件方法
- Redis和Memcached到底有什么区别?
- 『心善渊』Selenium3.0基础 — 27、unittest跳过测试的使用
- Spring Boot中的那些生命周期和其中的可扩展点(转)
- Java Map 集合类在selenium自动化测试设计中的应用