标签:因此 包括 适合 for 循环 efi 不同 不执行 建议 钩子
- 一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性。对于每个不同的属性,语句都会被执行。
- 不建议使用for in 遍历数组,因为输出的顺序是不固定的。
- 如果迭代的对象的变量值是null或者undefined, for in不执行循环体,建议在使用for in循环之前,先检查该对象的值是不是null或者undefined
因此,for in 尽量用于遍历对象
const obj = {
‘a‘:1,
‘b‘:2,
‘c‘:3
}
for(const i in obj) {
console.log(i)
console.log(obj[i])
}
// 输出 a 1 b 2 c 3
- for of 语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
因此,for of 适用于遍历数组、map、set、字符串等
// *** 数组 ***
const arr = [1,3,6,9]
for(const i of arr) {
console.log(i)
}
// 输出 1 3 6 9
// 遍历数组用普通的 for 循环最方便
// *** map 对象 ***
const map = new Map([[‘d‘, 12], [‘e‘, 13]])
map.set(‘f‘, 14)
for(const [k, v] of map) {
console.log(k)
console.log(v)
}
// 输出 d 12 e 13 f 14
// *** Set 对象 ***
const st = new Set([1, 2])
st.add(3)
for(const s of st) {
console.log(s)
}
console.log(st.size)
// 输出 1 2 3 3
// 字符串同数组
总结:for in 适合遍历对象,for of 适合遍历字符串、数组、Map、Set对象等。
标签:因此 包括 适合 for 循环 efi 不同 不执行 建议 钩子
原文地址:https://www.cnblogs.com/jcjd/p/14692602.html