JavaScript ES6学习-for/of
本文来继续学习 JavaScript - ES6
新的循环语句 for/of
JavaScript - ES6 新增: for/of
我们对 for循环
都特别熟悉了, ES6 新增的循环语句 for/of
也有一个关键字 for
, 但是这个 for
却和常规的for循环
是完全不同的循环.
同样长相(结构)类似的还有 for/in
, 这里先看 for/of, 下文在记录 for/in
for/of
for/of 循环用于遍历可迭代对象! 可迭代的对象例如: 数组/ 字符串/ 集合/ 映射, 这些对象都是一组或者一批元素组成的, 可以循环来获取每个元素.
来个最简单的小例子: 遍历一个数值数组求和问题
const arr = [1, 2, 3, 5, 6, 9, 8, 1], sum = 0 for (let item of arr) { sum += item } console.log(sum) // ==> 35 复制代码
从上面的例子我们可以看出来 for/of 和 for 循环特别像, for 关键字后面跟着一对圆括号, 里面包含怎么样来循环(即循环条件), 然后后面跟着个花括号--循环体;
在上面的代码中 arr
中的元素都会被遍历一次, 即每个元素都会运行一次. 在循环体执行完成后, 都会把数组的下一个元素赋值给元素变量. 从头到尾进行迭代
for/of 与对象
上面的代码是通过 for/of 遍历的是数组, 而对象呢?
对象(默认) 是不能迭代的. 如果在运行时尝试对常规对象进行 for/of 遍历就会抛出错误 TypeError
.
如果想遍历对象, 我们可以使用 Object.keys
获取对象的属性键名, 返回一个对象的属性名的数组. 然后就可以使用 for/of 对其进行遍历迭代了.
let obj = { aa: 1, bb: 2, cc: 3, dd: 5 } let objProArr = Object.keys(obj) let res = '' for (let key in objProArr) { res += key } console.log(res) // aabbccdd
作者:阿白756
链接:https://juejin.cn/post/7028591175325974542