背景

javascript中的for循环选择多种多样,可你知道其中的差别在哪里吗?什么时候又该用哪种循环才是最佳策略?以上这些是本文想讨论的,欢迎交流。

说明

1、20年前的for循环

//20年前的写法
let len = myArray.Length
for (let index = 0; index < len; index++) {
console.log(myArray[index])
}
  • 中规中矩。

2、forEach

//ES5的写法
myArray.forEach(function(index){
//操作你的index,index即为数组中的元素
})
  • 缺点,没有返回值。

3、for...in

//ES5的写法,劝你慎重
for (let index in myArray) {
// 千万别这样做
console.log(myArray[index]);
}
  • 最糟糕的做法,因为此时的index是字符串,而且不一定按照数组的顺序输出,很吓人。
  • 仅适用于遍历普通对象的key。

4、for...of

/**ES6写法
*支持数组
*类数组对象(如:NodeList对象)
*字符串
*Map
*set
*/
for (let value of myArray) {
console.log(value);
}
  • 各种优秀啦

最新文章

  1. 手机页面中的meta标签
  2. 货币金额的计算 - Java中的BigDecimal
  3. scanf,sscanf利用format跳过干扰的空格
  4. 第一篇:Power BI数据可视化概述
  5. Android项目中gen文件下R文件无法生成的解决的方法
  6. GoF——状态模式
  7. AndroidStudio 0.2.x 引入多模块Eclipse项目
  8. KnockOut绑定
  9. HTML基础入门
  10. iOS 从实际出发理解多线程
  11. 【BZOJ1934】善意的投票(网络流)
  12. yaml的用法
  13. 剑指Offer 65. 矩阵中的路径 (回溯)
  14. Django--filter(**kwargs)
  15. golang 的 math/big 进行
  16. maven多模块项目找不到Class错误
  17. Weex 学习文档、跳转路径、控制台输出、we转js汇总
  18. SC命令---安装、开启、配置、关闭windows服务 bat批处理(转载)
  19. 第89天:HTML5中 访问历史、全屏和网页存储API
  20. sql列转行查询

热门文章

  1. webpack快速入门——CSS中的图片处理
  2. SQL 必知必会 总结(一)
  3. php的GC机制
  4. Andrew Ng机器学习第三章——线性回归回顾
  5. #阿里云#云服务器搭建git服务器
  6. LFR benchmark graphs 人工网络生成程序
  7. deepin安装Mariadb后,登录时出现ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39;
  8. mysql ERROR 1045 (28000): Access denied for user 可能解决方法分析
  9. python——利用selenium模仿键盘输入跳转
  10. 根据屏幕尺寸计算rem