博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript 6 学习之路 ( 七 )迭代器和 for-of 循环
阅读量:6212 次
发布时间:2019-06-21

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

迭代器和 for-of 循环

最早的循环方式

var a = ["a", "b", "c"];for(var index = 0;index < a.length;index++){  console.log(a[index]);}

ES5forEach

var a = ["a", "b", "c"];a.forEach(function(element) {    console.log(element);});
forEach虽然简洁了不少,但是不能使用
break,
continues,
return

for..in也可以遍历数组

var a = ["a", "b", "c"];for(var index in a){//   console.log(a[index]);  console.log(typeof index);}

这是一个糟糕的选择!

  1. 赋值给index并不是一个数字,而是一个String,可能无意进行字符串计算,这给编程带来不便

    1. 作用于数组的for-in循环除了遍历数组元素以外,还会遍历自定义属性,举个例子,如果你的数组中有一个可枚举的类型a.name,那么循环将额外执行一次,遍历到名为name的索引,甚至数组原型链上的属性都能被访问到
  2. 这段代码可能按照 随机顺序遍历数组
  3. for-in 这个代码是为普通对象设计的,不适用于数组的遍历
所以平时我们最好不要使用for-in遍历数组

主角登场: for...of

var a = ["a", "b", "c"];for(var value of a){  console.log("for of:"+value);}
这个方法是最简洁的,并且修复了
for-in循环的所有缺点,与
forEach()不同的是,它可以正确的响应
break,
contine,
return语句

注意: for-of循环不支持普通对象,但是如果你想迭代一个对象的属性,可以使用for-in循环(这也是它的本职工作)或者内建的Object.keys()方法

var student={    name:'wujunchuan',    age:22,    locate:{    country:'china',    city:'xiamen',    school:'XMUT'    }}for(var key of Object.keys(student)){    //使用Object.keys()方法获取对象key的数组    console.log(key+": "+student[key]);}
与其说使用
Object.keys() 还不如使用
for-in
for(var prop in  student){  console.log(prop+': '+student[prop]);}

转载地址:http://lxdja.baihongyu.com/

你可能感兴趣的文章
Android:UI控件RatingBar、SeekBar、ProgressBar、RadioGroup、RadioButton、CheckBox、TextView
查看>>
ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
查看>>
Linq 多条件连接
查看>>
NodeJS学习第一季-安装与介绍
查看>>
你能相信老板的话吗?
查看>>
启动weblogic时提示_WLS_ADMINSERVER00000.DAT不可用
查看>>
用户 'IIS APPPOOL\ASP.NET V4.0' 登录失败
查看>>
centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包
查看>>
linux设备驱动中的并发控制——自旋锁
查看>>
JavaScript—script标签放在body里还是header里(25)
查看>>
geth, web3.js, JSON RPC, truffle之间的关系
查看>>
Linux下查看软、硬raid信息的方法
查看>>
【腾讯优测干货分享】如何降低App的待机内存(三)——探索内存增长的原因...
查看>>
Linux服务器下安装Composer 并使用Composer安装Thinkphp5.1
查看>>
判断js和css是否加载完成
查看>>
如何从git中移除一个子模块(submodule)
查看>>
《shell编程实战》第2章shell脚本入门(上)
查看>>
Python黑魔法:元类
查看>>
函数式编程之Clojure
查看>>
Guava新增集合类型-Multimap(3)
查看>>