获得徽章 0
- #每天一个知识点# ES6 Reflect
Reflect.ownKeys()和Object.keys()
- Reflect.ownKeys(object) 包括可枚举和不可枚举的属性名,也包括 Symbol 类型的属性名
- Object.keys(object) 不包括不可枚举属性、Symbol 类型的属性以及原型链上的属性delete 操作符和 Reflect.deleteProperty
对于对象属性的删除操作,行为完全一致,Reflect.deleteProperty(object,property),会更高阶更面向对象,保持统一性Reflect.has() 和 Object.prototype.hasOwnProperty()
- Reflect.has(object,property) 会检查自身和原型链
- hasOwnProperty() 检查自身
- eslint 会报错Do not access Object.prototype method ‘hasOwnProperty‘ from target object no-prototype-builtins,不要使用对象原型上的方法,因为原型的方法可能会被重写展开赞过评论1 - #每天一个知识点# for循环总结(虽然有的能实现相同的效果,但是这里对自己规范一下 )
for
* 支持break,continue控制语句for...of
* 数组,Set、Map、生成器函数(实现了迭代器接口)
* 支持break,continue控制语句
* 遍历数组不需要下标可以用这个 for(let item of arr)for await of
* 遍历异步可迭代对象,该语句只能在一个async function 内部使用for...in
* 遍历对象,不保证顺序
* 属性以及继承自原型链上的可枚举属性,Symbol不能被遍历Array.prototype.forEach((item,index,arr)=>{})
* 遍历数组,纯遍历操作,有更多的参数可用,遍历数组需要下标可以用这个
* 不支持break,continue控制语句
* 其他的遍历数组原生方法:map(), reduce(), filter(), every(), some()....性能比较
* for > for of > forEach > map > for in展开等人赞过评论4
![[疑问]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_31.606e7a5.png)