数组还有对象

数组还有对象

数组还有对象

--改变数组的7个方法
push pop shift unshift  splice sort reverse

--遍历对象的方法
  • for in
  • hasOwnProperty(类似 in --'属性名' in 对象) 判断自己身上是否有那个属性,原型链中继承来的不算

  • Object.keys()、 Object.values()
  • Object.keys()得到一个由 键组成的数组
  • Object.values()得到一个由 值组成的数组
  • 然后使用 forEach遍历
  • for in 循环和 Object.keys() 方法都不会返回对象的不可枚举属性
  • Obejct.getOwnPropertyNames()<包括不可枚举的属性>
  • 得到一个 由key组成的数组,然后配置forEach遍历

这其中只有 for in 循环会得到对象原型链上的属性,其它方法都只适用于对象自身的属性
ES 语言后续添加的新特性不会对以前的代码产生副作用,比如在 ES2015 之前就存在的 for in 循环,Object.keys() 和 Object.getOwnPropertyNames() 是肯定不会返回 Symbol 属性的


枚举

就是基本数据类型 就是不可枚举。

基本包装类型:Boolean,Number和String,就是即是基本类型,也是引用类型。基本包装类型还可以像引用类型一样通过对象的方法访问它自带的一些方法,但是不能像引用类型那样自定义方法。

判断一个属性是否可枚举,用Object.propertyIsEnumerable()来判断,但需要注意的一点是如果需要判断的属性在object的原型链上,不管它是否可枚举,Object.propertyIsEnumerable()都会返回false





本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!