JS's for...in for...of and enumerable, iterable

1. The difference between for...in for...of

  1. for...in traverses to get the key, for...of traverses to get the value
  2. for...in traverses enumerable data types, for...of traverses iterable data types

2. Enumerable vs Iterable

  1. Enumerable data, such as objects, arrays, strings
  2. Iterable data, such as arrays, strings, Maps, and Sets
  3. Example
    let obj = { name:'lisi', age:23, gender:'男'} //可枚举
    let arr = [1, 2, 3] //可枚举 可迭代
    // 判断对象的属性是否可迭代iterable
    console.log(typeof obj[Symbol.iterator] === 'function')
    console.log(typeof arr[Symbol.iterator] === 'function')
    // 判断对象的属性是否可枚举enumerable
    console.log(obj.propertyIsEnumerable('name'))
    // 检查对象可枚举属性enumerable是否为true
    console.log(Object.getOwnPropertyDescriptors(arr))
    //obj不可迭代
    for(let item of obj){
        console.log(key)
    }

     

Guess you like

Origin blog.csdn.net/qq_45199056/article/details/126386521