In/hasOwnProperty/for…in/for…of的区别
1. in
用于判断属性是否在对象上(包括继承而来的原型)。
2. hasOwnProperty
Object.prototype.hasOwnProperty
用于判断属性是否为自身属性(仅仅自身,不包括继承而来的)。
注:Object.hasOwn
是此方法的代替品。
3. for...in
for...in
语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。
如果作用在数组上,则把其当做对象来对待。
4. for...of
for...of
语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句