美文网首页
可枚举属性和不可枚举属性

可枚举属性和不可枚举属性

作者: 666同学 | 来源:发表于2019-12-28 16:26 被阅读0次

可枚举属性和不可枚举属性

js中每个对象的属性都有一个属性enumerable,这个属性true/false决定了这个属性是否可枚举

js中那些属性可枚举哪些属性不可枚举

1、基本数据类型自带的原型属性不可枚举

2、通过Object.defineProperty()方法指定的enumerable为false的属性不可枚举

Object.keys()和Reflect.ownKeys()区别

Object.keys()返回属性key,但不包括不可枚举的属性

Reflect.ownKeys()返回所有属性key

他们两个都不能遍历原型上的属性

扩展

for in

for in一般用于遍历对象的属性;

作用于数组的for in除了会遍历数组元素外,还会遍历自定义可枚举的属性,以及原型链上可枚举的属性;

作用于数组的for in的遍历结果是数组的索引,且都为字符串型,不能用于运算;

某些情况下,可能按照随机顺序遍历数组元素;

for of

ES6中添加的循环语法;

for of支持遍历数组、类对象(例如DOM NodeList对象)、字符串、Map对象、Set对象;

for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历;

for of遍历后的输出结果为数组元素的值;

相关文章

网友评论

      本文标题:可枚举属性和不可枚举属性

      本文链接:https://www.haomeiwen.com/subject/xenyoctx.html